日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 >

java ssl证书生成_java – 使用jdk中提供的keytool生成SSL证书

發布時間:2025/5/22 35 豆豆
生活随笔 收集整理的這篇文章主要介紹了 java ssl证书生成_java – 使用jdk中提供的keytool生成SSL证书 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

我在Web應用程序中使用的密鑰庫文件已于上周過期.我很久以前就生成了它.所以我開始使用keytool生成新證書.我使用此證書連接事務服務器和Web服務器.我想為此應用程序使用自簽名證書.我使用以下命令生成它以生成事務服務器的自簽名密鑰.

keytool -genkey -keystore keys/SvrKeyStore -keyalg rsa -validity 365 -alias Svr -storepass 123456 -keypass abcdefg -dname "CN=One1, OU=Development1, O=One, L=Bamba, S=Western Prov1, C=S1"

以下commnad為Web應用程序生成密鑰庫

keytool -genkey -keystore keys/ClientKeyStore -keyalg rsa -validity 365 -alias Web -storepass 123456 -keypass abcdefg -dname "CN=One, OU=Development, O=One, L=Bamba, S=Western Prov, C=SL"

我在事務服務器中使用以下代碼來創建套接字連接

String KEYSTORE = Config.KEYSTORE_FILE;//SvrKeyStore keystore file

char[] KEYSTOREPW = "123456".toCharArray();

char[] KEYPW = "abcdefg".toCharArray();

com.sun.net.ssl.TrustManagerFactory tmf;

boolean requireClientAuthentication;

java.security.Security.addProvider(new com.sun.net.ssl.internal.ssl.

Provider());

java.security.KeyStore keystore = java.security.KeyStore.getInstance(

"JKS");

keystore.load(new FileInputStream(KEYSTORE), KEYSTOREPW);

com.sun.net.ssl.KeyManagerFactory kmf = com.sun.net.ssl.

KeyManagerFactory.getInstance("SunX509");

kmf.init(keystore, KEYPW);

com.sun.net.ssl.SSLContext sslc = com.sun.net.ssl.SSLContext.

getInstance("SSLv3");

tmf = com.sun.net.ssl.TrustManagerFactory.getInstance("sunx509");

tmf.init(keystore);

sslc.init(kmf.getKeyManagers(), tmf.getTrustManagers(), null);

SSLServerSocketFactory ssf = sslc.getServerSocketFactory();

SSLServerSocket ssocket = (SSLServerSocket) ssf.createServerSocket(port);

ssocket.setNeedClientAuth(true);

但是當我在我的應用程序中使用它并嘗試通過Web服務器連接到事務服務器時,它會給出以下異常

javax.net.ssl.SSLException: Connection has been shutdown: javax.net.ssl.SSLHands

hakeException: java.security.cert.CertificateException: Untrusted Server Certifi

cate Chain

at com.sun.net.ssl.internal.ssl.SSLSocketImpl.checkEOF(SSLSocketImpl.jav

a:1172)

at com.sun.net.ssl.internal.ssl.AppInputStream.read(AppInputStream.java:

65)

at net.schubart.fixme.internal.MessageInput.readExactly(MessageInput.jav

a:166)

at net.schubart.fixme.internal.MessageInput.readMessage(MessageInput.jav

a:78)

at cc.aot.itsWeb.ClientWriterThread.run(ClientWriterThread.java:241)

at java.lang.Thread.run(Thread.java:619)

Caused by: javax.net.ssl.SSLHandshakeException: java.security.cert.CertificateEx

ception: Untrusted Server Certificate Chain

at com.sun.net.ssl.internal.ssl.Alerts.getSSLException(Alerts.java:174)

at com.sun.net.ssl.internal.ssl.SSLSocketImpl.fatal(SSLSocketImpl.java:1

520)

at com.sun.net.ssl.internal.ssl.Handshaker.fatalSE(Handshaker.java:182)

at com.sun.net.ssl.internal.ssl.Handshaker.fatalSE(Handshaker.java:176)

at com.sun.net.ssl.internal.ssl.ClientHandshaker.serverCertificate(Clien

tHandshaker.java:975)

at com.sun.net.ssl.internal.ssl.ClientHandshaker.processMessage(ClientHa

ndshaker.java:123)

at com.sun.net.ssl.internal.ssl.Handshaker.processLoop(Handshaker.java:5

11)

at com.sun.net.ssl.internal.ssl.Handshaker.process_record(Handshaker.jav

a:449)

at com.sun.net.ssl.internal.ssl.SSLSocketImpl.readRecord(SSLSocketImpl.j

ava:817)

at com.sun.net.ssl.internal.ssl.SSLSocketImpl.performInitialHandshake(SS

LSocketImpl.java:1029)

at com.sun.net.ssl.internal.ssl.SSLSocketImpl.writeRecord(SSLSocketImpl.

java:621)

at com.sun.net.ssl.internal.ssl.AppOutputStream.write(AppOutputStream.ja

va:59)

at java.io.OutputStream.write(OutputStream.java:58)

任何人都可以告訴我問題出在哪里

總結

以上是生活随笔為你收集整理的java ssl证书生成_java – 使用jdk中提供的keytool生成SSL证书的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。