zkat’s diary

技術ブログ

特定の認証局で発行された証明書の一覧を取得する(crt.shの使い方)

はじめに

CT(Certificate Transperency)の仕組みにより、認証局がどのような証明書を発行したかという情報は調べることができます。
crt.sh というツールを使用して、特定の認証局で発行された証明書の一覧を検索してみたいと思います。

crt.sh

認証局を選ぶ

私の環境でデフォルトでインストールされているルート証明書の中から、
適当な認証局を選びます。例えば、国内のルート認証局であるセコムにしてみます。

$ ls /usr/share/ca-certificates/mozilla/ | grep Security
Security_Communication_EV_RootCA1.crt
Security_Communication_RootCA2.crt
Security_Communication_Root_CA.crt

Security_Communication_RootCA2.crt の中身はこんな感じです。

$ cat Security_Communication_RootCA2.crt | openssl x509 -text -noout
Certificate:
    Data:
        Version: 3 (0x2)
        Serial Number: 0 (0x0)
    Signature Algorithm: sha256WithRSAEncryption
        Issuer: C=JP, O=SECOM Trust Systems CO.,LTD., OU=Security Communication RootCA2
        Validity
            Not Before: May 29 05:00:39 2009 GMT
            Not After : May 29 05:00:39 2029 GMT
        Subject: C=JP, O=SECOM Trust Systems CO.,LTD., OU=Security Communication RootCA2
        Subject Public Key Info:
       以下略

IssuerとSubjectが同じ値になっていますので、ルート証明書であることがわかります。
こいつがルートとなっている(中間)証明書にはどんなものがあるのか検索してみます。

crt.shで証明書を検索する

crt.shのトップページから、「Advanced」 のリンクを選択します。 すると以下の様な感じの画面になるので、「Select search Type」から 「organizationUnitName」を選択してOUの値で検索します。 OUの値として、「Security Communication RootCA2」を入力します。

f:id:zkat:20181029193852j:plain

以下の表のような結果が返るので上の行のIssuer Nameの列をクリックします。

crt.sh ID Logged At Not Before Not After Issuer Name
1176879 2015-08-20 2009-05-29 2029-05-29 C=JP, O="SECOM Trust Systems CO.,LTD.", OU=Security Communication RootCA2
6986985 2015-08-20 2015-03-24 2023-09-29 C=JP, O=SECOM Trust.net, OU=Security Communication RootCA1

すると、一番下の行のChild CAsに、Security Communication RootCA2をルートとする中間認証局の一覧が表示されます。

Child CAs
C=JP, L=Academe, O=National Institute of Informatics, CN=NII Open Domain CA - G4
C=JP, L=Academe, O=National Institute of Informatics, CN=NII Open Domain Code Signing CA - G2
C=JP, L=Academe, O=National Institute of Informatics, CN=NII Open Domain S/MIME CA
C=JP, O=CrossTrust, CN=CrossTrust DV CA3
C=JP, O=CrossTrust, CN=CrossTrust DV CA4
C=JP, O=CrossTrust, CN=CrossTrust OV CA3
C=JP, O=CrossTrust, CN=CrossTrust OV CA4
C=JP, O="FreeBit Co.,Ltd.", CN=YourNet SSL for business2
C=JP, O="FreeBit Co.,Ltd.", CN=YourNet SSL for domain2
C=JP, O=FUJIFILM, CN=FUJIFILM Fnet CA - C
C=JP, O=FUJIFILM, CN=FUJIFILM Fnet CA - S
C=JP, O=FUJIFILM, CN=FUJIFILM Fnet CA - S2
C=JP, O=Fuji Xerox, CN=Fuji Xerox Certification Authority - G2
C=JP, O=Fuji Xerox, CN=Fuji Xerox Product CA 2 - S
C=JP, O=Fuji Xerox, CN=Fuji Xerox Product CA - S
C=JP, O=Fuji Xerox, CN=Fuji Xerox Xnet CA - C
C=JP, O=Fuji Xerox, CN=Fuji Xerox Xnet CA - S
C=JP, O=Fuji Xerox, CN=Fuji Xerox Xnet CA - S2
C=JP, O=INTEC INC., CN=EINS/PKI Public Certification Authority V3
C=JP, O=INTEC INC., CN=EINS/PKI Public Certification Authority V3
C=JP, O=Japanese Government, OU=Ministry of Defense, CN=Certification Authority
C=JP, O="Japan Registry Services Co., Ltd.", CN=JPRS Domain Validation Authority - G1
C=JP, O="Japan Registry Services Co., Ltd.", CN=JPRS Domain Validation Authority - G2
C=JP, O="Japan Registry Services Co., Ltd.", CN=JPRS Organization Validation Authority - G1
C=JP, O="Japan Registry Services Co., Ltd.", CN=JPRS Organization Validation Authority - G2
C=JP, O=KDDI Web Communications Inc., CN=KDDI Web Communications Certification Authority
C=JP, O=KDDI Web Communications Inc., CN=KDDI Web Communications Certification Authority 2
C=JP, O=National Institute of Informatics, CN=NII Open Domain CA - G5
C=JP, O="Nijimo, Inc.", CN=FujiSSL Public Certification Authority - G1
C=JP, O="Nijimo, Inc.", CN=FujiSSL Public Certification Authority - G2
C=JP, O="SECOM Trust Systems CO.,LTD.", CN=SECOM Passport for Web EV 2.0 CA
C=JP, O="SECOM Trust Systems CO.,LTD.", CN=SECOM Passport for Web MH CA
C=JP, O="SECOM Trust Systems CO.,LTD.", CN=SECOM Passport for Web SR 3.0 CA
C=JP, O="SECOM Trust Systems CO.,LTD.", CN=SECOM Passport for Web SR 3.0 CA
C=JP, O="SECOM Trust Systems CO.,LTD.", CN=SECOM TimeStamping CA2
C=JP, O="SECOM Trust Systems CO.,LTD.", CN=SubordinateCA6
C=JP, O="SECOM Trust Systems CO.,LTD.", OU=SECOM Passport for Member 2.0 PUB, CN=SECOM Passport for Member PUB CA4
C=JP, O="SECOM Trust Systems CO.,LTD.", OU=SECOM Passport for Member 2.0 PUB, CN=SECOM Passport for Member PUB CA5
C=JP, O="SECOM Trust Systems CO.,LTD.", OU=SECOM Passport for Member 2.0 PUB, CN=SECOM Passport for Member PUB CA6
C=JP, O="SECOM Trust Systems CO.,LTD.", OU=SECOM Passport for Member 2.0 PUB, CN=SECOM Passport for Member PUB CA7
C=JP, O="SECOM Trust Systems CO.,LTD.", OU=SECOM Passport for Member 2.0 PUB, CN=SECOM Passport for Member PUB CA8
C=JP, O=Sumitomo Mitsui Banking Corporation, OU=SMBC Authority, CN=SMBC Certificate Authority CA2
C=JP, O=XiPS, CN=XiPS CA2

リスト中の気になる中間認証局を適当にクリックします。
ここでは、C=JP, O=National Institute of Informatics, CN=NII Open Domain CA - G5にします。

Issued Certificates の行にEnter search termという検索窓があるので、%.go.jpなど適当に検索をすると、
この中間認証局で発行された go.jpドメインに対するすべての証明書 を確認することができます。