SSL証明書が失効しているかどうかを確認するにはどうすればよいですか


23

ハートブリードの脆弱性の最近の発見により、認証局は証明書を再発行するようになりました。

heartbleed脆弱性が発見される前に生成された2つの証明書があります。SSL発行者から証明書を再生成するように指示された後、サーバー/ドメインの両方を新しい証明書で更新しました。

私の理解が正しい場合、古い証明書はCAによって失効され、CRL(証明書失効リスト)またはOCSPデータベース(オンライン証明書ステータスプロトコル)に到達する必要があります。そうでない場合、誰かが「侵害された証明書から取得した情報から証明書を再生成することにより、中間者攻撃。

古い証明書がCRLとOCSPに到達したかどうかを確認する方法はありますか。それらが含まれていない場合、それらを含める方法はありますか?

更新:状況は、既に証明書を置き換えていることです。古い証明書の.crtファイルのみであるため、URLを使用して確認することは実際には不可能です。


certutilを使用して確認できます。読み取りを持ってここに
MichelZ

1
私は私のデスクトップと私のサーバー上のCentOSにとしてのUbuntuを使う
シュリダールpandurangiah

その後、質問にタグを付けることをお勧めします
MichelZ 14

* nix
MichelZ 14

@MichelZ -私はUbuntuの持つ疑問タグ付けされている
シュリダールpandurangiah

回答:


10

証明書からocsp URLを取得します。

$ openssl x509 -noout -ocsp_uri -in /etc/letsencrypt/archive/31337.it/cert1.pem
http://ocsp.int-x1.letsencrypt.org/
$

ocspサーバーにリクエストを送信して、証明書が失効しているかどうかを確認します。

$ openssl ocsp -issuer /etc/letsencrypt/archive/31337.it/chain4.pem -cert /etc/letsencrypt/archive/31337.it/cert4.pem -text -url http://ocsp.int-x1.letsencrypt.org/ -header "HOST" "ocsp.int-x1.letsencrypt.org"
...
        This Update: Oct 29 10:00:00 2015 GMT
        Next Update: Nov  5 10:00:00 2015 GMT
$

これは良い証明書です。

これは取り消された証明書です。

$  openssl ocsp -issuer /etc/letsencrypt/archive/31337.it/chain3.pem -cert /etc/letsencrypt/archive/31337.it/cert3.pem -text -url http://ocsp.int-x1.letsencrypt.org/ -header "HOST" "ocsp.int-x1.letsencrypt.org"
...
        This Update: Oct 29 12:00:00 2015 GMT
        Next Update: Nov  5 12:00:00 2015 GMT
        Revocation Time: Oct 29 12:33:57 2015 GMT
$

これは私にとってはうまくいきました(ありがとう)が、失効時間に加えて失効理由も表示したことにも言及したいと思いました。証明書。
-sdek

10

Windowsでcertutilを使用できます。

証明書があり、その有効性を確認する場合は、次のコマンドを実行します。

certutil -f –urlfetch -verify [FilenameOfCertificate]

たとえば、使用

certutil -f –urlfetch -verify mycertificatefile.cer

ソース/詳細: TechNet

さらに、必ずCAに確認してください。証明書のキーを再生成する/新しい証明書を取得するからといって、自動的にそれを取り消すわけではありません!


1
certutilUbuntuサーバーにインストールするには、コマンドを使用しますsudo apt-get install libnss3-tools。apt-getキャッシュを検索してもstringの結果が返されないため、これは明らかではありませんcertutil。OPのサーバーがCentOSであることは知っていますが、他のUbuntuサーバー管理者がこの質問も役立つと思う可能性があります。
dotancohen

私の答えは、純粋にWindowsベースでした。これの* nix実装については知りません。参照してくださいここで可能* nixの解決のために
MichelZ

2
@dotancohenこのプログラムはとも呼ばれますが、Windows certutilと同じプログラムcertutil.exeではなく、同じ方法で使用されることもありません。
ダン・ゲッツ

1

このSSLLabsサービスを使用してSSL証明書をテストできますが、Webからアクセスできる必要があります。さらに、このサービスが何らかの監査を提供するように、さらに多くの情報を見つけることができます。


これには、古い証明書を使用してサーバーを実行する必要があります。しかし、証明書を再生成したのは、古い証明書の.crtファイルだけです。
sridhar pandurangiah 14

1

証明書を生成したCAを介して証明書を失効させた場合、OCSPおよびCRLに到達します。

それが事実であることを確認したい場合は、証明書からocsp urlを抽出し、証明書シリアル番号、ca発行者証明書を含むそのURLへのocspリクエストを作成し、ocspレスポンスを取得してくださいそれを解析して、実際に取り消されていることを確認します。

この便利なページの詳細:http : //backreference.org/2010/05/09/ocsp-verification-with-openssl/

注:これには、opensslライブラリーの使用が必要です。

Edit1:この回答の後に、OCSPとCRLに関する情報を明示的に追加したことがわかります。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.