2013-12-08 9 views
10

SSLを使用するlocalhost上のアプリケーションに接続しようとしています。私はMac OS X Mavericksを使用しています。私は取得していますエラーは以下の通りです:SSL証明書 - OS X Mavericks

Error sending cURL get request to https://dev.site.com:5555/version 
Error code: 60 Error msg: SSL certificate problem: Invalid certificate chain 

私はチェーンに証明書を追加しようとしました:

/usr/bin/security add-trusted-cert -d -r trustRoot -k "/Library/Keychains/System.keychain" /etc/path/ca_key.pem 

それでも同じエラーを取得。

答えて

5

--cacert--certは、OSX Mavericksで壊れています。

あなたはここでそれについての詳細を読むことができます:https://groups.google.com/forum/#!topic/munki-dev/oX2xUnoQEi4

を回避策はここにある:システムに

証明書をインポート:あなたは、信頼できるシステムの証明書として証明書をインポートする必要があることを示しhttp://curl.haxx.se/mail/archive-2013-10/0036.html Keychain Accessを使用して、システム(「システム」)またはユーザー(「ログイン」)のキーチェーンを作成し、SSLおよびX.509基本ポリシーに対して常に信頼できるものとしてマークします。

+1

Safariは[my certificate](https://sbarnea.com)を問題なく認識していますが、カールはまだ機能しません。インポートプロセスを自動化するために使用できるコマンドラインアプローチを知っていますか(SafariではKeyChainで証明書を保存することはできません) – sorin

+0

Safariではインポートはできませんが、直接インポートすることは可能ですシステムキーチェーン – brandonscript

2

あなたが行うことができる2つの事があります。

(1).P12への.pem証明書を変換します

openssl pkcs12 -export -out my_certificate.p12 -inkey my_certificate.pem -in my_certificate.pem` 

PASSWORD変換するときに、あなたが選んでカールしてそれを使用するには:

curl --cert my_certificate.p12:PASSWORD. 

(2)、infopaneを開いて、あなたのキーチェーンに.pemファイルをドラッグしてSSLのための「は常に信頼」に設定し、 X.509、およびCOMMON-NAMEに注意してください。 (証明書の名前)

curl --cert COMMON-NAME 

いくつかのケースではcURL 7.35.0

22

とOSX 10.9の私のために両方の仕事はあなたがLinuxやMac用のコードを開発する場合など、標準的なカールを(使用する方がよいでしょう* BSD)。この場合、あなたはそのように行うことができます。

  1. Homebrew

  2. は、標準的な証明書のサポート(これ以上のキーホルダー本命)とカールインストールします。

    brew install curl --with-openssl && brew link curl --force

  3. あなたの〜/ .bash_profileの

    export CURL_CA_BUNDLE=/usr/local/etc/openssl/certs/cacert.pemに追加/usr/local/etc/openssl/certs/cacert.pem

  4. http://curl.haxx.se/ca/cacert.pemからのルートCA証明書をインストールします。

  5. 4つのステップの後で、キーチェーンからではなくファイルからの証明書でcurlを使用できます。

+0

私は/ usr/local/etc/openssl/certs、tnksというフォルダを作成しなければなりませんでした! – RckLN

+1

-forceは--forceに置き換える必要があります –

+0

ステップ3と4は何をしますか?マックの私のカールはそれらなしでも働いた。 –