こんにちは、ローカルで作成した REST Web サービスを SSL 経由でカールさせようとして頭が痛いです。「curl: (60) SSL 証明書の問題: 自己署名証明書 の詳細はこちら: http://curl.haxx.se/docs/sslcerts.html 」というメッセージが引き続き表示されます。 curl は、認証局 (CA) の公開鍵 (CA 証明書) の「バンドル」を使用して、デフォルトで SSL 証明書の検証を実行します。デフォルトのバンドル ファイルが適切でない場合は、 --cacert オプションを使用して別のファイルを指定できます。この HTTPS サーバーがバンドル内の CA によって署名された証明書を使用している場合、証明書の問題が原因で証明書の検証が失敗した可能性があります (証明書の有効期限が切れているか、名前が URL のドメイン名と一致しない可能性があります)。curl による証明書の検証をオフにしたい場合は、-k (または --insecure) オプションを使用してください。」
ここで私が従った手順
- OpenSSL プライベート証明書とキー ペアを使用して独自の CA 証明書を作成しましたca\private_ca_pk.pem 私の CN: RESTfulCustomer
キーストアと mycert.pem keytool -genkey -validity 365 -alias myalias -keypass password -keystore myKeyStore.jks -storepass password を作成し、上記と同じ CN を使用しました
証明書署名要求 keytool -certreq -alias myalias -file myCert_csr.pem -keypass password -keystore myKeyStore.jks -storepass password を作成しました
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 で CSR に署名しました。
PEM 形式への変換 - 次のように、署名付き証明書 CertName.pem を PEM のみの形式に変換します。 .pem -outform PEM
- CA 証明書ファイルと certName.pem を連結した myCert.pem + c:\X509CA\ca\new_ca.pem myCert.chain
- 完全な証明書チェーンでキーストアを更新 - 次のように証明書の完全な証明書チェーンをインポートして、キーストア CertName.jks を更新します。それをfirefoxに入れ、server.xmlを更新しましたapache tomacat 7は正常に起動し、ssl Webページに問題なく移動できました。--insecure を使用しないと、Curl は機能しません。私の Curl コマンド curl -v --cacert ca.pem https://
localhost
:8443/RESTfulCustomer/customers.json
上記の curl コマンドを実行すると、「curl: (60) SSL 証明書の問題: 自己署名証明書」というメッセージが表示されます。
http:// localhost
:8080/RESTfuCustomer.customers.json に対して ssl を無効にして Curl コマンドを実行すると、正常に動作します。
ca.pem を myKeyStore.jks にインポートし、Apache を再起動しました。環境 Windows 7、Apache Tomcat 7、Spring Security 3.1、curl 7.30.0 (i386-pc-win32) libcurl/7.30.0 OpenSSL/1.0.1c zlib/1.2.7
どんな助けでも本当に感謝します