2013-07-19 69 views
2

嗨,我試圖蜷縮通過SSL本地創建的REST Web服務時遇到了很大的麻煩。 我不斷收到消息「curl:(60)SSL證書問題:自簽名證書 更多詳細信息,請參見:http://curl.haxx.se/docs/sslcerts.html curl默認使用證書頒發機構(CA)的」綁定「 公鑰執行SSL證書驗證CA證書)如果缺省的 軟件包文件不足,可以使用--cacert選項指定備用文件 如果此HTTPS服務器使用由 中代表的CA簽名的證書,則證書驗證可能由於證書有問題 而失敗(可能已過期,或者名稱可能與網址中的域名不符 ) 如果您想要tu關閉卷發的證書驗證,請使用-k(或--insecure)選項 。「我跟着通過SSL捲曲自簽名證書Web服務

下面的步驟

  1. 創建了自己的CA證書與OpenSSL的私人證書和密鑰對 OpenSSL的REQ -x509 -new -config C:\ X509CA \ openssl.cfg -days 365 -outÇ :\ X509CA \ CA \ private_ca.pem -keyout C:\ X509CA \ CA \ private_ca_pk.pem 我CN:RESTfulCustomer
  2. 創建密鑰庫和mycert.pem 密鑰工具-genkey -validity 365個-alias myalias -keypass密碼-keystore myKeyStore.jks -storepass密碼 使用與上述相同的CN

  3. 創建的證書籤名請求 的keytool -certreq -alias myalias -file myCert_csr.pem -keypass密碼-keystore myKeyStore.jks -storepass密碼

  4. 簽名的CSR與 OpenSSL的 CA -config C: \ X509CA \ openssl.cfg -days 365 -in c:\ path \ to \ key_store \ myCert_csr.pem -out c:\ path \ to \ key_store \ myCert.pem

  5. 轉換爲PEM格式 - 轉換籤名證書CertName.pem,以PEM唯一格式,如下所示: OpenSSL x509 -in c:\ path \ to \ key_store \ myCert.pem -out c:\ path \ to \ key_store \ myCert.pem -outform PEM

  6. 級聯CA證書文件和certName.pem 副本myCert.pem + C:\ X509CA \ CA \ new_ca.pem myCert.chain
  7. 更新密鑰庫的充分證書鏈 - 通過導入證書的完整證書鏈來更新密鑰庫CertName.jks,如下所示: keytool -import -file myCert.chain -keypass password -keystore myKeyStore.jks -storepass password 最後將其導入到Firefox中,更新我的server.xml apache tomacat 7開始行,我可以導航到我的ssl網頁沒有問題。如果不使用--fecure,捲曲不起作用。我curl命令 捲曲-v --cacert ca.pem https://開頭localhost:8443/RESTfulCustomer/customers.json

上述curl命令給我的消息「捲曲:(60)SSL證書問題:自簽名證書「​​

運行curl命令http // localhost:8080/RESTfuCustomer.customers.json與ssl禁用工作正常。

我將ca.pem導入myKeyStore.jks並重新啓動了Apache。 Environemnt Windows 7中的Apache Tomcat 7,春季安全3.1,捲曲7.30.0(I386-PC-win32)中的libcurl/7.30.0的OpenSSL/1.0.1c的zlib/1.2.7

任何幫助將非常感激 感謝

+1

考慮編輯您的問題以提高可讀性。隨意使用大膽的功能突出重要的細節或可能是你的問題。這會讓你更快回復。除此之外,歡迎來到SO! –

回答

-1

請參閱該如下回答:

總結:

% openssl s_client -showcerts -connect example.com:443 </dev/null 2>/dev/null | sed -n '/-----BEGIN CERTIFICATE-----/,/-----END CERTIFICATE-----/p' | grep -m1 -B-1 -- '-----END CERTIFICATE-----' > cert.pem 
% curl --cacert cert.pem https://example.com 

和田田,你安全地連接到一個自簽名的網站。