免責事項: 私は SSL を初めて使用しており、少し混乱しているため、すぐに回答が必要です。
「キーストア」が破損する恐れがあると言われたので、それを調べて理解しようとしています。私は Arch Linux を使用しています。
には面白いものがたくさんあります/etc/ssl/certs
(そして、質問 #1 は「これが 'keystore' とは何ですか?」だと思います)。しかし、リストをすべて渡してreadlink -f
重複を削除したところ、リストははるかにわかりやすくなりました。すべての証明書は からのようです/usr/share/ca-certificates/
。その大部分はmozilla/
サブディレクトリにありますが、次のようなサブディレクトリもあります。
brazil.gov.br/
cacert.org/
debconf.org/
gouv.fr/
signet.pl/
spi-inc.org/
私の主な問題は、疑わしい証明書の見分け方がわからないことです。これらのサイトにアクセスするだけでは、直感に反するように思えます (つまり、最初にキーストアを破損させた可能性のある同じマルウェアがそこに存在する可能性があります)。
ca-certificates
パッケージ マネージャーによってインストールされたパッケージです。削除してから再インストールしてもよいでしょうか? 安全に実行できますか?
アップデート:
この調査のきっかけとなった問題は、認識されていない VeriSign 証明書でした。具体的には、私が持っていなかった (しかし、おそらく持っていて信頼すべきだった) 証明書付きの署名が私に与えられました。
VeriSign のサイトで、多数の証明書をリストした次のページを見つけました。 http://www.verisign.com/support/roots.html ...そこで、インストールした証明書のフィンガープリントをサイト上の証明書のフィンガープリントと比較し始めました。
for cert in /etc/ssl/certs/Veri[Ss]ign*; do
printf "%s: " $cert
openssl x509 -noout -in $cert -fingerprint
done
結果: 1 つが一致しません。これも重要なもののようです: 「VeriSign Class 1 Public Primary CA」。
問題: パッケージマネージャは、既存の証明書のチェックサムは正常であると表示しています。さらに、私が持っているはずの証明書のフィンガープリントが一致しています。どちらでもない私が持っているものでも、VeriSign のサイトに掲載されているものでもない。
答え1
CA によってエンド エンティティ (Web サーバーなど) に発行される証明書は、通常、中間 (チェーン) CA 経由で発行されます。これにはいくつかの理由があります。CA が最初にこの方法で証明書を発行し始めたとき、サーバー オペレーターが中間 CA をインストールしないのが一般的でした。そのため、ルート証明書と EE 証明書の両方を持っているものの、それらを接続する方法がない状況で、チェーン証明書のキャッシュされた (またはインストールされた) コピーを持っていないユーザーを訪問することになります。これは現在ではあまり一般的ではありませんが、あなたが直面している問題である可能性があります。これはパブリック サーバーにアクセスしたことによるものです。そうであれば、確認してみます。検証できない EE 証明書の発行者名をいつでも確認し、VeriSign のサイトで一致する「中間 CA」証明書が見つかるかどうかを確認できます。見つかる場合は、EE を中間証明書で検証し、中間証明書をルートで検証できるはずです。これを手動で行う場合は、証明書の検証も行うことをお勧めします。OCSP は、VeriSign のすべての CA でサポートされています。この形式のリアルタイム/ほぼリアルタイムの検証よりも、ほとんど (すべて?) のプレミアム CA でサポートされています。それ以外の場合は、CRL が次善策です。