日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

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

發布時間:2025/5/22 编程问答 29 豆豆
生活随笔 收集整理的這篇文章主要介紹了 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证书的全部內容,希望文章能夠幫你解決所遇到的問題。

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