2013-01-10 105 views
0

我必須從remore服務器檢索並下載本地環境證書鏈。 我可以使用瀏覽器嵌入式服務,但據我所知,這種方法不適用於證書鏈(或有一些瓶頸)。這就是爲什麼我想使用的OpenSSL以下命令:如何通過openssl檢索證書鏈

openssl s_client -showcerts -connect host.host:9999

這將打印出像適當證書信息:

 
CONNECTED(0000015C) 
depth=1 /C=US/O=Google Inc/CN=Google Internet Authority 
verify error:num=20:unable to get local issuer certificate 
verify return:0 
--- 
Certificate chain 
0 s:/C=US/ST=California/L=Mountain View/O=Google Inc/CN=google.com 
    i:/C=US/O=Google Inc/CN=Google Internet Authority 
-----BEGIN CERTIFICATE----- 
MIIcFzCCG4CgAwIBAgIGR09PUAFxMA0GCSqGSIb3DQEBBQUAMEYxCzAJBgNVBAYT 
-----END CERTIFICATE----- 
1 s:/C=US/O=Google Inc/CN=Google Internet Authority 
    i:/C=US/O=Equifax/OU=Equifax Secure Certificate Authority 
-----BEGIN CERTIFICATE----- 
MIICsDCCAhmgAwIBAgIDC2dxMA0GCSqGSIb3DQEBBQUAME4xCzAJBgNVBAYTAlVT 
-----END CERTIFICATE----- 
--- 
Server certificate 
subject=/C=US/ST=California/L=Mountain View/O=Google Inc/CN=google.com 
issuer=/C=US/O=Google Inc/CN=Google Internet Authority 
--- 
No client certificate CA names sent 
--- 
SSL handshake has read 8040 bytes and written 310 bytes

我怎樣才能得到這個.CRT或.CER格式?我可以用適當的擴展名將它複製/粘貼到文本文件中嗎?如果是的話,鏈條的起始和結束在哪裏?

回答

0

我不知道'.crt'或'.cer'格式究竟是什麼意思。如果您複製----- BEGIN CERTIFICATE ---------- END CERTIFICATE -----之間的輸出並將它們保存到文本文件中,您將獲得證書鏈文件格式爲PEM格式(默認爲openssl)。你的文件應該看起來像這樣(鏈中有兩個證書):

-----BEGIN CERTIFICATE----- 
MIIF/DCCBWWgAwIBAgIKUCYyawAAAAB1rzANBgkqhkiG9w0BAQUFADBGMQswCQYD 
<the rest of the certificate 1> 
-----END CERTIFICATE----- 
-----BEGIN CERTIFICATE----- 
MIICsDCCAhmgAwIBAgIDC2dxMA0GCSqGSIb3DQEBBQUAME4xCzAJBgNVBAYTAlVT 
<the rest of the certificate 2> 
-----END CERTIFICATE----- 
+0

我搜索了一些特定的命令來檢索帶有適當鏈的文件,並從命令行復制粘貼。我解決方案 - 使用常規的窗口輸出。 openssl s_client -showcerts -connect host.host:9999 >> tomcat.crt –

+0

*「我不知道'.crt'或'.cer'格式究竟意味着什麼」 - 你必須在行之間讀取,因爲有沒有太多的命名標準。通常,這意味着證書是ASN.1/DER編碼的。但有時他們也是PEM編碼的。我通常使用'.pem'作爲PEM,但我已經看到一些CA在PEM中發佈他們的證書並使用'.crt'或'.cer'格式。 – jww

+0

僅供參考:我一直將所有證書放在'''Java/Sun-JRE/*/customcerts'''目錄中的獨立.pem文件中。我剛剛嘗試將它們組合成一個證書鏈文件,如上所述,而我的應用根本不喜歡它。因人而異 – samwyse