私なりの探し方をまとめました。
ブラウザの場合
ブラウザの鍵マークをクリック>証明書>証明書のパス>一番上の証明書をクリック>証明書の表示
ブラウザの鍵マークをクリック
一番上のルート証明書 をクリックして、「証明書の表示」をクリック
でルート証明書 が見れます。
ルート証明書 のダウンロード(エクスポート)も「詳細」タブの「ファイルにコピー」でできます。
「ファイルにコピー」でダウンロードできる
エクスポートするときのファイル形式は、
DER形式(DER encoded binary X.509)
PEM形式(Base 64 encoded X.509)
P7B形式(Cryptographic Message Syntax Standard)
の3種類から選べます。
ブラウザ以外の場合
「[ルート証明書 名 or 企業名] root certificate」等でググって、ダウンロードできるサイトを探します。
「GlobalSign Root CA - R2 root certificate」とかで検索して探します。
ルート証明書/中間CA証明書(SSLサーバ証明書) | GMOグローバルサイン サポート
ルート証明書 を発行しているCA認証局 は大体サイトからダウンロードできるようにしてくれているので頑張って探します。
ルート証明書 の名前がわかっていない場合
OpenSSLを使います。
まず、openssl
コマンドを使ってサーバとTLS なりSTARTTLSなりで通信をします。その際に-showcerts
オプションを指定すると証明書チェーンが表示されるので、それを見ればルート証明書 がわかります。
以下ではGmail のSMTP サーバ(smtp.gmail.com
)のルート証明書 を探します。
> openssl s_client -connect smtp.gmail.com:587 -starttls smtp -showcerts
CONNECTED( 000001C0 )
depth =1 C = US, O = Google Trust Services, CN = GTS CA 1O1
verify error:num= 20:unable to get local issuer certificate
verify return:1
depth =0 C = US, ST = California, L = Mountain View, O = Google LLC, CN = smtp.gmail.com
verify return:1
---
Certificate chain
0 s:C = US, ST = California, L = Mountain View, O = Google LLC, CN = smtp.gmail.com
i:C = US, O = Google Trust Services, CN = GTS CA 1O1
-----BEGIN CERTIFICATE-----
MIIEyDCCA7CgAwIBAgIQSzhrqklQvncCAAAAAHpLZDANBgkqhkiG9w0BAQsFADBC
MQswCQYDVQQGEwJVUzEeMBwGA1UEChMVR29vZ2xlIFRydXN0IFNlcnZpY2VzMRMw
EQYDVQQDEwpHVFMgQ0EgMU8xMB4XDTIwMDkwMzA2NDA0NloXDTIwMTEyNjA2NDA0
NlowaDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCkNhbGlmb3JuaWExFjAUBgNVBAcT
DU1vdW50YWluIFZpZXcxEzARBgNVBAoTCkdvb2dsZSBMTEMxFzAVBgNVBAMTDnNt
dHAuZ21haWwuY29tMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEDhITcefeUMYB
+nyn2h4okLuNeiWVUHA8WiGU7RQO0hcmhB5wujB7Pl8jYgIXHoOzRRmywIDIFp+V
wCQ5cFR5SaOCAl0wggJZMA4GA1UdDwEB/wQEAwIHgDATBgNVHSUEDDAKBggrBgEF
BQcDATAMBgNVHRMBAf8EAjAAMB0GA1UdDgQWBBSHRBeWPUXeRH3cDglYzWu9AJcW
cTAfBgNVHSMEGDAWgBSY0fhuEOvPm+xgnxiQG6DrfQn9KzBoBggrBgEFBQcBAQRc
MFowKwYIKwYBBQUHMAGGH2h0dHA6Ly9vY3NwLnBraS5nb29nL2d0czFvMWNvcmUw
KwYIKwYBBQUHMAKGH2h0dHA6Ly9wa2kuZ29vZy9nc3IyL0dUUzFPMS5jcnQwGQYD
VR0RBBIwEIIOc210cC5nbWFpbC5jb20wIQYDVR0gBBowGDAIBgZngQwBAgIwDAYK
KwYBBAHWeQIFAzAzBgNVHR8ELDAqMCigJqAkhiJodHRwOi8vY3JsLnBraS5nb29n
L0dUUzFPMWNvcmUuY3JsMIIBBQYKKwYBBAHWeQIEAgSB9gSB8wDxAHcAB7dcG+V9
aP/xsMYdIxXHuuZXfFeUt2ruvGE6GmnTohwAAAF0UuksiAAABAMASDBGAiEAiN7n
z854FQrffyjPiAHQWjkKnBIPaxA08/CifmKCaHUCIQCLc14iC3ac5WgDubjkXITa
SmlaVemO1Ix3eAa3g6N7kwB2AOcS8rA3fhpi+47JDGGE8ep7N8tWHREmW/Pg80vy
QVRuAAABdFLpLF8AAAQDAEcwRQIga/yh3rUb4L/1fkTTgmEMQqS/0QAmQvJfNsJr
GSwgc+oCIQD+TVQ1RU7r6ylJsPJ68N4nAZphIBMgK1fLNHfSZ3F2aTANBgkqhkiG
9w0BAQsFAAOCAQEApjaqg8SqdbyYQyck3mGS9BNytzqrbUqYqmto6KcIJvuXx83I
HDJgbSJ+u1ukUZNxs2r5D2zi5sckwu7XUJKjakz+M2gafXy6i8l3LYQQ7dawuIJa
CkkdurNlYnXqfjt1ZXLhSlmj9AF/PqKEyE0p3aBcLRbDyBkPIbPRR9QnOt6cE3rV
q8wtfzwq6qSa8e2TVe6b7pSLMMe1aVcyBY6mrXyKxcz13KwiheUg8CicptkAPBoy
w757azBTSjyPEfEpT5IomANb9AUJx4ijhyvV9MXchbNwLkhktiR9QW29VkSlXSBb
tIUdHACgD69wvelpVJlyFG/aYmWeeweg5aWFNQ ==
-----END CERTIFICATE-----
1 s:C = US, O = Google Trust Services, CN = GTS CA 1O1
i:OU = GlobalSign Root CA - R2, O = GlobalSign, CN = GlobalSign
-----BEGIN CERTIFICATE-----
MIIESjCCAzKgAwIBAgINAeO0mqGNiqmBJWlQuDANBgkqhkiG9w0BAQsFADBMMSAw
HgYDVQQLExdHbG9iYWxTaWduIFJvb3QgQ0EgLSBSMjETMBEGA1UEChMKR2xvYmFs
U2lnbjETMBEGA1UEAxMKR2xvYmFsU2lnbjAeFw0xNzA2MTUwMDAwNDJaFw0yMTEy
MTUwMDAwNDJaMEIxCzAJBgNVBAYTAlVTMR4wHAYDVQQKExVHb29nbGUgVHJ1c3Qg
U2VydmljZXMxEzARBgNVBAMTCkdUUyBDQSAxTzEwggEiMA0GCSqGSIb3DQEBAQUA
A4IBDwAwggEKAoIBAQDQGM9F1IvN05zkQO9+tN1pIRvJzzyOTHW5DzEZhD2ePCnv
UA0Qk28FgICfKqC9EksC4T2fWBYk/jCfC3R3VZMdS/dN4ZKCEPZRrAzDsiKUDzRr
mBBJ5wudgzndIMYcLe/RGGFl5yODIKgjEv/SJH/UL+dEaltN11BmsK+eQmMF++Ac
xGNhr59qM/9il71I2dN8FGfcddwuaej4bXhp0LcQBbjxMcI7JP0aM3T4I+DsaxmK
FsbjzaTNC9uzpFlgOIg7rR25xoynUxv8vNmkq7zdPGHXkxWY7oG9j+JkRyBABk7X
rJfoucBZEqFJJSPk7XA0LKW0Y3z5oz2D0c1tJKwHAgMBAAGjggEzMIIBLzAOBgNV
HQ8BAf8EBAMCAYYwHQYDVR0lBBYwFAYIKwYBBQUHAwEGCCsGAQUFBwMCMBIGA1Ud
EwEB/wQIMAYBAf8CAQAwHQYDVR0OBBYEFJjR+G4Q68+b7GCfGJAboOt9Cf0rMB8G
A1UdIwQYMBaAFJviB1dnHB7AagbeWbSaLd/cGYYuMDUGCCsGAQUFBwEBBCkwJzAl
BggrBgEFBQcwAYYZaHR0cDovL29jc3AucGtpLmdvb2cvZ3NyMjAyBgNVHR8EKzAp
MCegJaAjhiFodHRwOi8vY3JsLnBraS5nb29nL2dzcjIvZ3NyMi5jcmwwPwYDVR0g
BDgwNjA0BgZngQwBAgIwKjAoBggrBgEFBQcCARYcaHR0cHM6Ly9wa2kuZ29vZy9y
ZXBvc2l0b3J5LzANBgkqhkiG9w0BAQsFAAOCAQEAGoA+Nnn78y6pRjd9XlQWNa7H
TgiZ/r3RNGkmUmYHPQq6Scti9PEajvwRT2iWTHQr02fesqOqBY2ETUwgZQ+lltoN
FvhsO9tvBCOIazpswWC9aJ9xju4tWDQH8NVU6YZZ/XteDSGU9YzJqPjY8q3MDxrz
mqepBCf5o8mw/wJ4a2G6xzUr6Fb6T8McDO22PLRL6u3M4Tzs3A2M1j6bykJYi8wW
IRdAvKLWZu/axBVbzYmqmwkm5zLSDW5nIAJbELCQCZwMH56t2Dvqofxs6BBcCFIZ
USpxu6x6td0V7SvJCCosirSmIatj/9dSSVDQibet8q/7UK4v4ZUN80atnZz1yg ==
-----END CERTIFICATE-----
...
このCertificate chain以下に注目します。「0」と「1」の2つの証明書情報がぶら下がっているのが見つかります(中間証明書がある場合は2とかにもなる)。
0 s:C = US, ST = California, L = Mountain View, O = Google LLC, CN = smtp.gmail.com
i:C = US, O = Google Trust Services, CN = GTS CA 1O1
1 s:C = US, O = Google Trust Services, CN = GTS CA 1O1
i:OU = GlobalSign Root CA - R2, O = GlobalSign, CN = GlobalSign
数字が大きいほうがルート証明書 に近くなります。今回は「1」がルート証明書 です。sはsubject(証明対象)でiはissuer(発行者)を意味します。ルート証明書 の発行者がCA認証局 なので、「GlobalSign」がCA認証局 です。
ルート証明書 「GlobalSign Root CA - R2」は、-----BEGIN CERTIFICATE-----
と-----END CERTIFICATE-----
で囲まれたものが証明書になります。
1 s:C = US, O = Google Trust Services, CN = GTS CA 1O1
i:OU = GlobalSign Root CA - R2, O = GlobalSign, CN = GlobalSign
-----BEGIN CERTIFICATE-----
MIIESjCCAzKgAwIBAgINAeO0mqGNiqmBJWlQuDANBgkqhkiG9w0BAQsFADBMMSAw
HgYDVQQLExdHbG9iYWxTaWduIFJvb3QgQ0EgLSBSMjETMBEGA1UEChMKR2xvYmFs
U2lnbjETMBEGA1UEAxMKR2xvYmFsU2lnbjAeFw0xNzA2MTUwMDAwNDJaFw0yMTEy
MTUwMDAwNDJaMEIxCzAJBgNVBAYTAlVTMR4wHAYDVQQKExVHb29nbGUgVHJ1c3Qg
U2VydmljZXMxEzARBgNVBAMTCkdUUyBDQSAxTzEwggEiMA0GCSqGSIb3DQEBAQUA
A4IBDwAwggEKAoIBAQDQGM9F1IvN05zkQO9+tN1pIRvJzzyOTHW5DzEZhD2ePCnv
UA0Qk28FgICfKqC9EksC4T2fWBYk/jCfC3R3VZMdS/dN4ZKCEPZRrAzDsiKUDzRr
mBBJ5wudgzndIMYcLe/RGGFl5yODIKgjEv/SJH/UL+dEaltN11BmsK+eQmMF++Ac
xGNhr59qM/9il71I2dN8FGfcddwuaej4bXhp0LcQBbjxMcI7JP0aM3T4I+DsaxmK
FsbjzaTNC9uzpFlgOIg7rR25xoynUxv8vNmkq7zdPGHXkxWY7oG9j+JkRyBABk7X
rJfoucBZEqFJJSPk7XA0LKW0Y3z5oz2D0c1tJKwHAgMBAAGjggEzMIIBLzAOBgNV
HQ8BAf8EBAMCAYYwHQYDVR0lBBYwFAYIKwYBBQUHAwEGCCsGAQUFBwMCMBIGA1Ud
EwEB/wQIMAYBAf8CAQAwHQYDVR0OBBYEFJjR+G4Q68+b7GCfGJAboOt9Cf0rMB8G
A1UdIwQYMBaAFJviB1dnHB7AagbeWbSaLd/cGYYuMDUGCCsGAQUFBwEBBCkwJzAl
BggrBgEFBQcwAYYZaHR0cDovL29jc3AucGtpLmdvb2cvZ3NyMjAyBgNVHR8EKzAp
MCegJaAjhiFodHRwOi8vY3JsLnBraS5nb29nL2dzcjIvZ3NyMi5jcmwwPwYDVR0g
BDgwNjA0BgZngQwBAgIwKjAoBggrBgEFBQcCARYcaHR0cHM6Ly9wa2kuZ29vZy9y
ZXBvc2l0b3J5LzANBgkqhkiG9w0BAQsFAAOCAQEAGoA+Nnn78y6pRjd9XlQWNa7H
TgiZ/r3RNGkmUmYHPQq6Scti9PEajvwRT2iWTHQr02fesqOqBY2ETUwgZQ+lltoN
FvhsO9tvBCOIazpswWC9aJ9xju4tWDQH8NVU6YZZ/XteDSGU9YzJqPjY8q3MDxrz
mqepBCf5o8mw/wJ4a2G6xzUr6Fb6T8McDO22PLRL6u3M4Tzs3A2M1j6bykJYi8wW
IRdAvKLWZu/axBVbzYmqmwkm5zLSDW5nIAJbELCQCZwMH56t2Dvqofxs6BBcCFIZ
USpxu6x6td0V7SvJCCosirSmIatj/9dSSVDQibet8q/7UK4v4ZUN80atnZz1yg ==
-----END CERTIFICATE-----
ちなみにこの-----BEGIN CERTIFICATE-----
と-----END CERTIFICATE-----
で囲まれた形式をPEM形式と呼びます(Base64 でエンコード されてる形式)。
おまけとして、PEM形式の証明書とDER形式の証明書の変換方法を記載します。
PEMからDERへ変換
PEM形式server.pem.crt
を、DER形式server.der.crt
に変換する。
> openssl x509 -inform PEM -in server.pem.crt -outform DER -out server.der.crt
DERからPEMへ変換
DER形式server.der.crt
を、PEM形式server.pem.crt
に変換する。
> openssl x509 -inform DER -in server.der.crt -outform PEM -out server.pem.crt
参考サイト
証明書フォーマットを変換する