web-dev-qa-db-ja.com

Acquia Dev Desktop、PHP 5.6およびローカルMacOSXでのSSL証明書の問題

Drupal SalesForce Suiteモジュール https://www.drupal.org/project/salesforce を使用してSalesForceへの認証に問題があります

ソケットssl://ap2.salesforce.com:443を開くときにエラーが発生しました

Drupal DevDesktop 2を使用して(ビルド:2015年11月22日12:34:41))PHP 5.6でSSLがオンになっているMacOSXマシンで実行しています。 Ubuntuサーバーでは、Macとまったく同じ設定を使用して、salesforceモジュールを問題なく認証できます。

Macでこの追加のテストを実行すると、同様のエラーが発生します。

fsockopen('ssl://google.com',443,$errno,$errstr) ? print("UP") : print("DOWN:".$errstr);

警告:fsockopen():SSL操作はコード1で失敗しました。OpenSSLエラーメッセージ:error:14090086:SSLルーチン:SSL3_GET_SERVER_CERTIFICATE:certificate verifyがtest.phpの2行目で失敗しました

警告:fsockopen():2行目のtest.phpで暗号を有効にできませんでした

警告:fsockopen():2行目のtest.phpでssl://google.com:443(不明なエラー)に接続できませんDOWN:

Phpinfo()を表示すると、「Openssl default config」の設定が/Users/acquia/csbworkdir/dmitrybezer/libopenssl/install/ssl/openssl.cnfであることがわかります

このバージョンのDev Desktopは、ローカル開発でSSLをサポートすることになっています。 DevDesktopのドキュメントから: https://docs.acquia.com/dev-desktop/sites#https

ローカルサイトでのHTTPS(SSL)の使用ローカルWebサイトのローカルサイトURLリンクには、[httpsを使用]チェックボックスがあります。 Use httpsチェックボックスを選択すると、Acquia Dev DesktopはHTTPSプロトコルを使用してサイトにサービスを提供し、自己署名SSL証明書を使用して安全なトラフィックをシミュレートします。これにより、運用サイトで使用するSSL証明書を複製することなく、安全なWebサイトをローカルで開発およびテストできます。

これまでに誰かがこれに遭遇したことがあり、言及されている自己署名SSL証明書を指すようにDevDesktopを取得するにはどうすればよいですか?

2
ThinkingCap

周りを見回した後、私は同様の問題に関するケノーブの返事を見つけました: https://drupal.stackexchange.com/a/149456/625

私のMacにインストールされているDevDesktopファイルを探し回った後、なんとか解決しました。

問題は、証明書ファイルがデフォルトの場所に存在しないことです。

print_r(openssl_get_cert_locations());

戻り値

Array ( 
    [default_cert_file] => /Users/acquia/csbworkdir/dmitrybezer/libopenssl/install/ssl/cert.pem 
    [default_cert_file_env] => SSL_CERT_FILE 
    [default_cert_dir] => /Users/acquia/csbworkdir/dmitrybezer/libopenssl/install/ssl/certs 
    [default_cert_dir_env] => SSL_CERT_DIR 
    [default_private_dir] => /Users/acquia/csbworkdir/dmitrybezer/libopenssl/install/ssl/private 
    [default_default_cert_area] => /Users/acquia/csbworkdir/dmitrybezer/libopenssl/install/ssl 
    [ini_cafile] => [ini_capath] => ) 

したがって、存在しないディレクトリ「/ Users/acquia/csbworkdir/dmitrybezer/libopenssl/install/ssl /」でcert.pemを探しています。

これを解決するには、/ Applications/[Devデスクトップフォルダ] /php5_6/bin/php.iniを編集します

次の行を追加します。

[openssl]
openssl.cafile="/Applications/[Dev desktop folder]/common/cert/cacert.pem"
openssl.capath="/Applications/[Dev desktop folder]/common/cert/"

[Devデスクトップフォルダー]は、Devデスクトップフォルダーの名前です。

1
ThinkingCap