Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Entrée/Sortie Java Discussion :

[Résolu] Socket SSL et Let's encrypt


Sujet :

Entrée/Sortie Java

  1. #1
    Futur Membre du Club
    [Résolu] Socket SSL et Let's encrypt
    Bonjour,

    J'ai un soucis avec l'application Blynk qui est écrite en Java.
    N'ayant pas de connaissance particulière sur l'écosystème de Java, je recherche un peu d'aide.

    Jusqu'ici l'application fonctionnait correctement avec un certificat Let's encrypt mais depuis le dernier renouvellement l'application génère une exception :
    Exception in thread “main” java.lang.RuntimeException: failed to initialize the server-side SSL context
    at cc.blynk.server.SslContextHolder.initSslContext(SslContextHolder.java:137)
    at cc.blynk.server.SslContextHolder.(SslContextHolder.java:83)
    at cc.blynk.server.Holder.(Holder.java:156)
    at cc.blynk.server.launcher.ServerLauncher.start(ServerLauncher.java:95)
    at cc.blynk.server.launcher.ServerLauncher.main(ServerLauncher.java:73)
    Toutefois, l'application ne génère pas d'exception si j'utilise un certificat périmé. Évidemment, je sais que cela crée des problèmes de sécurité mais cela semble indiquer un problème quelconque de certificat.

    Je vous joins le code de la fonction qui génère l'exception et il me semble que c'est la fonction en ligne 134 qui en est à l'origine.

    Code :Sélectionner tout -Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    118    private static SslContext initSslContext(String serverCertPath, String serverKeyPath, String serverPass,
    119                                            SslProvider sslProvider) {
    120        try {
    121            File serverCert = new File(serverCertPath);
    122            File serverKey = new File(serverKeyPath);
    123
    124
    125            if (!serverCert.exists() || !serverKey.exists()) {
    126                log.warn("ATTENTION. Server certificate paths (cert : '{}', key : '{}') not valid."
    127                                + " Using embedded server certs and one way ssl. This is not secure."
    128                                + " Please replace it with your own certs.",
    129                        serverCert.getAbsolutePath(), serverKey.getAbsolutePath());
    130
    131                return build(sslProvider);
    132            }
    133
    134            return build(serverCert, serverKey, serverPass, sslProvider);
    135        } catch (CertificateException | SSLException | IllegalArgumentException e) {
    136            log.error("Error initializing ssl context. Reason : {}", e.getMessage());
    137            throw new RuntimeException(e.getMessage());
    138        }
    139    }


    Quand pensez-vous ?

    D'avance merci de votre aide.

    Thoma

  2. #2
    Futur Membre du Club
    Je me réponds dès fois que cela serve à quelqu'un.

    Je suis passé de Java 11 à Java 8 ce qui a résolu le problème.