Ошибка безопасного подключения к серверу java - PullRequest
1 голос
/ 18 июня 2020

Я попытался защитить соединение с моим java сервером, после загрузки сертификата (certificate.crt) и добавления его в хранилище ключей (keystore.jks) мой сервер работал нормально и считывал сертификат. Но если я хочу потребляю услугу через https://123.456.88.99: 1010 / myService из навигатора (firefox) Я получаю PR_END_OF_FILE_ERROR Страница, которую вы пытаетесь просмотреть, не может быть показана, потому что подлинность полученных данных не может быть проверена .ps: http://123.456.88.99: 1010 / myService работает и потребляет сервис, а также извлекает данные, используя firefox, я думаю, это проблема закрытого ключа, который не получает навигатор, мне действительно нужно помогите, спасибо ps, если я попытаюсь использовать сертификат, который я создаю с помощью keytool, он работает

private void startHttpsServer(RestFactory factory, int port, int minWorkers, int maxWorkers, int socketTimeoutMS, 
          boolean keepConnection, boolean ignoreContentLength, boolean debug, Compression compression, boolean useClassicServer, boolean requireCertificate) throws Exception {
        String alias = "server-alias";
        String pwd = "changeit";
        char [] storepass = pwd.toCharArray();
        String keystoreName = "c:\\keystore.jks";
        FileInputStream in = new FileInputStream(keystoreName);
        KeyStore keystore = KeyStore.getInstance("JKS");
        keystore.load(in, storepass);
        Certificate cert = keystore.getCertificate(alias);
        Log.debug("the certification is here : " + cert);
        KeyManagerFactory kmf = KeyManagerFactory.getInstance(KeyManagerFactory.getDefaultAlgorithm());
        char [] keypass = pwd.toCharArray();
        kmf.init(keystore, keypass);
        TrustManagerFactory tmf = TrustManagerFactory.getInstance(TrustManagerFactory.getDefaultAlgorithm());
        tmf.init(keystore);
        SSLContext sslContext = SSLContext.getInstance("TLSv1.2");
        sslContext.init(kmf.getKeyManagers(), tmf.getTrustManagers(), null);
        SSLEngine engine = sslContext.createSSLEngine();
        engine.setEnabledCipherSuites(new String[] {"TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384",
                "TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256",
                "TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA256",
                "TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256"});
        SSLParameters defaultSSLParameters = sslContext.getDefaultSSLParameters();
        engine.setSSLParameters(defaultSSLParameters);             
        HttpsRestServer server = new HttpsRestServer(factory, port, minWorkers, maxWorkers, debug, compression, keystore, keypass, false); 
        server.addCleaner(new CleanupListener() {
            @Override
            public void cleanup(CleanupEvent event) {
                Database.disconnectAllThreadConnections(event.thread, false);
            }
        });
        this.servers.add(server);
        log.info("Starting classic HTTPS replication server on port " + port);
        server.start();
    log.info("Secure XML replication server started on port " + port);
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...