web-dev-qa-db-ja.com

OpenSSLがデフォルトで証明書フォルダーのCAを取得しない

Ubuntu 12.04 LTSでは、CApathが明示的に設定されていない場合、証明書検証エラーのエラーが表示されます

いくつかのソリューションを試しました。しかし、何も機能しません。私のシステムに新しいパッケージをインストールするのに多くの問題を引き起こしています(少なくとも2つのシステムで試してみました)

成功したコマンド:

openssl s_client -connect secure.ogone.com:443 -showcerts -CApath /etc/ssl/certs/ 

Success with Verify return code: 0 (ok) 

失敗したコマンド

openssl s_client -connect secure.ogone.com:443 -showcerts 

Failed with Verify return code: 20 (unable to get local issuer certificate)

Wikiの応答に基づいて次の解決策を試みましたが、機能していません

openssl x509 -noout -hash -in /etc/ssl/certs/GeoTrust_Global_CA.pem 2c543cd1    
openssl x509 -noout -subject_hash_old -in /etc/ssl/certs/GeoTrust_Global_CA.pem 7999be0d    
openssl x509 -noout -subject_hash -in /etc/ssl/certs/GeoTrust_Global_CA.pem 2c543cd1

ハッシュ値の違いがわかります

-subject_hash_oldおよび-subject_hashを使用してシンボリックリンクを作成するスクリプトを追加しようとしました。

しかし、問題は引き続き発生し、エラーコードVerify return code: 20 (unable to get local issuer certificate)が表示されます。

#!/bin/sh
Create following script to create symbolic links in /etc/ssl/certs
Link with subject_hash_old and subject_hash is successfully created


for FILE in /etc/ssl/certs/*.pem
do
   hasholdsub=`openssl x509 -noout -subject_hash_old -in $FILE`
   hashsub=`openssl x509 -noout -subject_hash -in $FILE`

   echo $hasholdsub $hashsub

   ln -s $FILE  $hasholdsub.0
   ln -s $FILE  $hashsub.0
   cat  $FILE >> ca-certificats-gen.crt
done

しかし、この問題はまだ存在しています

問題を解決するのを手伝ってください。

1
Manoj Jain

-CAfileの代わりに-CApathを使用してみて、単一の連結されたCA証明書ファイルをポイントしてください。例えば。:

openssl s_client -connect secure.ogone.com:443 -showcerts \
                 -CAfile /etc/ssl/certs/ca-certificates.crt

これは、verify return:1と完全な証明書チェーンを表示して機能します。

背景情報:この/etc/ssl/certs/ca-certificates.crtupdate-ca-certificatesコマンドによって管理され、/usr/local/share/ca-certificates/に手動でインストールされた証明書を含む、システム全体にインストールされたすべての証明書を単純に連結します。

2
gertvdijk