首页 > 解决方案 > 使用 Keytool 的 Java HTTPS 服务器

问题描述

我正在使用以下内容为安全网站初始化 HTTPS 驱动的服务器。密钥库命令如下:

keytool -genkey -keyalg RSA -alias mykey -keystore keystore.jks -keypass 密码 -storepass 密码 -validity 365 -keysize 2048

运行代码后,当我尝试加载我的网站并出现黄色屏幕时,我收到一条 bad_certificate 错误消息。我究竟做错了什么?

        String path = "C:\\Users\\Administrator\\Documents\\NetBeansProjects\\SSLTest5";
        String file = path + "\\" + "keystore.jks";
        KeyStore keyStore = KeyStore.getInstance("JKS");
        keyStore.load(new FileInputStream(file),"password".toCharArray());
         
        // Create key manager
        KeyManagerFactory keyManagerFactory = KeyManagerFactory.getInstance("SunX509");
        keyManagerFactory.init(keyStore, "password".toCharArray());
        KeyManager[] km = keyManagerFactory.getKeyManagers();
         
        // Create trust manager
        TrustManagerFactory trustManagerFactory = TrustManagerFactory.getInstance("SunX509");
        trustManagerFactory.init(keyStore);
        TrustManager[] tm = trustManagerFactory.getTrustManagers();
         
        // Initialize SSLContext
        SSLContext sslContext = SSLContext.getInstance("SSL");
        sslContext.init(km,  tm, null);
        
        SSLServerSocketFactory sslServerSocketFactory = sslContext.getServerSocketFactory();
        SSLServerSocket sslServerSocket = (SSLServerSocket) sslServerSocketFactory.createServerSocket(443);
        
        
        System.out.println("Waiting for client...");

        SSLSocket sslSocket = (SSLSocket) sslServerSocket.accept();

        HandleAccept(sslSocket);

标签: javasslhttpskeytool

解决方案


推荐阅读