2016-01-12 19 views
0

堆棧跟蹤爲:我很努力,但CertificateException異常。如何生成與使用者備用名稱證書

Caused by: java.security.cert.CertificateException: No subject alternative names present 
at sun.security.util.HostnameChecker.matchIP(HostnameChecker.java:144) ~[na:1.8.0_65] 
at sun.security.util.HostnameChecker.match(HostnameChecker.java:93) ~[na:1.8.0_65] 
at sun.security.ssl.X509TrustManagerImpl.checkIdentity(X509TrustManagerImpl.java:455) ~[na:1.8.0_65] 
at sun.security.ssl.X509TrustManagerImpl.checkIdentity(X509TrustManagerImpl.java:436) ~[na:1.8.0_65] 
at sun.security.ssl.X509TrustManagerImpl.checkTrusted(X509TrustManagerImpl.java:200) ~[na:1.8.0_65] 
at sun.security.ssl.X509TrustManagerImpl.checkServerTrusted(X509TrustManagerImpl.java:124) ~[na:1.8.0_65] 
at sun.security.ssl.ClientHandshaker.serverCertificate(ClientHandshaker.java:1491) ~[na:1.8.0_65] 

解決的辦法是:your certificate should include that ip value as a subject alternative name value (of type IPAddress : key=7). 但是,我怎麼能包括IP值作爲主題備用名稱值當我生成證書?

回答

1

我會嘗試使用opessl。檢查這個URL,你會發現你需要什麼。 opensslSAN

看看這部分:文字上:

「因此,通過使用命令行中通過書面的OpenSSL問題的共同語法,你需要指定所有上述的(該OU是可選的)和添加另一個名爲subjectAltName =。 的部分通過在subjectAltName「字段下添加DNS.n(其中n是一個連續數字)條目,您可以根據需要添加儘可能多的其他」備用名稱「,甚至不涉及主要域名。 很明顯,大多數SSL產品都會覆蓋第一級父域,除非另有說明。 所以這裏有一個例子來生成證書」

openssl req -new -key endpoint.com.key -sha256 -nodes -subj '/C=US/ST=New York/L=New York/O=End Point/OU=Hosting Team/CN=www.endpoint.com/ [email protected]ain.com/ subjectAltName=DNS.1=endpoint.com' > www.endpoint.com.csr

+0

酷。謝謝你的信息。即使我只是複製粘貼的重要部分,這將是確定?讓我知道,以編輯請回答。再次感謝 – Oldskultxo

+0

是的,那會很棒。請在這裏查看http://stackoverflow.com/help/how-to-answer(關於鏈接的部分) –

+0

謝謝,我已經通過「 - ext san = ip:xxx.xxx.xx.xx「。 – zhongwei

相關問題