StartSSLには、EV証明書の署名に使用する中間証明書があります sub.class4.server.ca.pem 。この証明書の発行者は、openssl x509
によって/ C = IL/O = StartCom Ltd./OU=Secure Digital Certificate Signing/CN = StartCom Certification Authorityと示されます。これは、ルートCAとして配布する証明書 ca.pem と一致します。
ただし、Firefox/Mozillaには、そのサブジェクトを持つ2つの証明書が含まれています。 1つは、StartSSLが配布する証明書と同じです。その他 (以下に添付) 検証可能に異なります。たとえば、前者のシリアル番号は1で、後者のシリアル番号は45です。Edit:Afterさらなる調査により、これはStartSSLが ca-sha2.pem 。として配布する証明書と同じであることが判明しました
openssl verify
を使用して sub.class4.server.ca.pem を ca.pem に対してチェックすると、機能します。
% openssl verify -CAfile ca.pem -verbose sub.class4.server.ca.pem
sub.class4.server.ca.pem: OK
興味深いことに、Firefox/Mozilla証明書と照合すると、引き続き機能します。
% openssl verify -CAfile ca-ff.pem -verbose sub.class4.server.ca.pem
sub.class4.server.ca.pem: OK
私の結果をファウルするために何か他のものがそこに入っていないことを確認するために、私は私が間違っているものであることがわかっている証明書に対してそれを試しました:
% openssl verify -CAfile ca-wrong.pem -verbose sub.class4.server.ca.pem
sub.class4.server.ca.pem: C = IL, O = StartCom Ltd., OU = StartCom Certification Authority, CN = StartCom Extended Validation Server CA
error 20 at 0 depth lookup:unable to get local issuer certificate
これは2つの可能性を残します:openssl verify
が実際の署名をチェックせず、発行者のサブジェクトのみに依存している(おそらく間違って使用しているため)か、この証明書を2つの異なる証明書で検証できます。
最初の可能性を確認するために、同じ発行者情報で自己署名証明書を作成し、それを使用して中間証明書を検証しました。
% openssl verify -CAfile ca-fake.pem -verbose sub.class4.server.ca.pem
sub.class4.server.ca.pem: C = IL, O = StartCom Ltd., OU = StartCom Certification Authority, CN = StartCom Extended Validation Server CA
error 20 at 0 depth lookup:unable to get local issuer certificate
ですから、openssl verify
はそれほど簡単には手探りではないようです。
次に、2つの異なる証明書が同じRSA鍵を使用している場合、同じ子証明書を検証できることに気付き、2つの証明書について報告された公開鍵係数が同じであることがわかりました。
StartComが2つの異なる証明書に同じRSAキーを使用しているように見えることはまったく心配ですか?私には悪い考えのようですが、私は素人です。
これを調べている他の人のために、Firefoxが持っている追加の証明書を以下に示します。
-----BEGIN CERTIFICATE-----
MIIHhzCCBW+gAwIBAgIBLTANBgkqhkiG9w0BAQsFADB9MQswCQYDVQQGEwJJTDEW
MBQGA1UEChMNU3RhcnRDb20gTHRkLjErMCkGA1UECxMiU2VjdXJlIERpZ2l0YWwg
Q2VydGlmaWNhdGUgU2lnbmluZzEpMCcGA1UEAxMgU3RhcnRDb20gQ2VydGlmaWNh
dGlvbiBBdXRob3JpdHkwHhcNMDYwOTE3MTk0NjM3WhcNMzYwOTE3MTk0NjM2WjB9
MQswCQYDVQQGEwJJTDEWMBQGA1UEChMNU3RhcnRDb20gTHRkLjErMCkGA1UECxMi
U2VjdXJlIERpZ2l0YWwgQ2VydGlmaWNhdGUgU2lnbmluZzEpMCcGA1UEAxMgU3Rh
cnRDb20gQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkwggIiMA0GCSqGSIb3DQEBAQUA
A4ICDwAwggIKAoICAQDBiNsJvGxGfHiflXu1M5DycmLWwTYgIiRezul38kMKogZk
pMyONvg45iPwbm2xPN1yo4UcodM9tDMr0y+v/uqwQVlntsQGfQqedIXWeUyAN3rf
OQVSWff0G0ZDpNKFhdLDcfN1YjS6LIp/Ho/u7TTQEceWzVI9ujPW3U3eCztKS5/C
Ji/6tRYccjV3yjxd5srhJosaNnZcAdt0FCX+7bWgiA/deMotHweXMAEtcnn6RtYT
Kqi5pquDSR3l8u/d5AGOGAqPY1MWhWKpDhk6zLVmpsJrdAfkK+F2PrRt2PZE4XNi
HzvEvqBTViVsUQn3qqvKv3b9bZvzndu/PWa8DFaqr5hIlTpL36dYUNk4dalb6kMM
Av+Z6+hsTXBbKWWc3apdzK8BMewM69KN6Oqce+Zu9ydmDBpI125C4z/eIT574Q1w
+2OqqGwaVLRcJXrJosmLFqa7LH4XXgVNWG4SHQHuEhANxjJ/GP/89PrNbpHoNkm+
Gkhpi8KWTRoSsmkXwQqQ1vp5Iki/untp+HDH+no32NgN0nZPV/+Qt+OR0t3vwmC3
Zzrd/qqc8NSLf3Iizsafl7b4r4qgEKjZ+xjGtrVcUjyJthkqcwEKDwOzEmDyei+B
26Nu/yYwl/WL3YlXtq09s68rxbd2AvCl1iuahhQqcvbjM4xdCUsT37uMdBNSSwID
AQABo4ICEDCCAgwwDwYDVR0TAQH/BAUwAwEB/zAOBgNVHQ8BAf8EBAMCAQYwHQYD
VR0OBBYEFE4L7xqkQFulF2mHMMo0aEPQQa7yMB8GA1UdIwQYMBaAFE4L7xqkQFul
F2mHMMo0aEPQQa7yMIIBWgYDVR0gBIIBUTCCAU0wggFJBgsrBgEEAYG1NwEBATCC
ATgwLgYIKwYBBQUHAgEWImh0dHA6Ly93d3cuc3RhcnRzc2wuY29tL3BvbGljeS5w
ZGYwNAYIKwYBBQUHAgEWKGh0dHA6Ly93d3cuc3RhcnRzc2wuY29tL2ludGVybWVk
aWF0ZS5wZGYwgc8GCCsGAQUFBwICMIHCMCcWIFN0YXJ0IENvbW1lcmNpYWwgKFN0
YXJ0Q29tKSBMdGQuMAMCAQEagZZMaW1pdGVkIExpYWJpbGl0eSwgcmVhZCB0aGUg
c2VjdGlvbiAqTGVnYWwgTGltaXRhdGlvbnMqIG9mIHRoZSBTdGFydENvbSBDZXJ0
aWZpY2F0aW9uIEF1dGhvcml0eSBQb2xpY3kgYXZhaWxhYmxlIGF0IGh0dHA6Ly93
d3cuc3RhcnRzc2wuY29tL3BvbGljeS5wZGYwEQYJYIZIAYb4QgEBBAQDAgAHMDgG
CWCGSAGG+EIBDQQrFilTdGFydENvbSBGcmVlIFNTTCBDZXJ0aWZpY2F0aW9uIEF1
dGhvcml0eTANBgkqhkiG9w0BAQsFAAOCAgEAjo/n3JR5fPGFf59Jb2vKXfuM/gTF
wWLRfUKKvFO3lANmMD+x5wqnUCBVJX92ehQN6wQOQOY+2IirByeDqXWmN3PH/UvS
Ta0XQMhGvjt/UfzDtgUx3M2FIk5xt/JxXrAaxrqTi3iSSoX4eA+D/i+tLPfkpLst
0OcNOrg+zvZ49q5HJMqjNTbOx8aHmNrs++myziebiMMEofYLWWivydsQD032ZGNc
pRJvkrKTlMeIFw6Ttn5ii5B/q06f/ON1FE8qMt9bDeD1e5MNq6HPh+GlBEXoPBKl
CcWw0bdT82AUuoVpaiF8H3VhFyAXe2w7QSlc4axa0c2Mm+tgHRns9+Ww2vl5GKVF
P0lDV9LdJNUso/2RjSe15esUBppMeyG7Oq0wBhjA2MFrLH9ZXF2RsXAiV+uKa0hK
1Q8p7MZAwC+ITGgBF3f0JBlPvfrhsiAhS90a2Cl9qrjeVOwhVYBsHvUwyKMQ5bLm
KhQxw4UtjJixhlpPiVktucf3HMiKf8CdBUrmQk9io20ppB+Fq9vlgcitKj1MXVuE
JnHEhV5xJMqlG2zYYdMa4FTbzrqpMrUi9nNBCV24F10OD5mQ1kfabwo6YigUZ4LZ
8dCAWZvLMdibD4x3TrVoivJs9iQOLWxwxXPR3hTQcY+203sC9uO41Alua551hDnm
fyWl8kgAwKQB2j8=
-----END CERTIFICATE-----
X.509に関する限り、同じ公開鍵を持つ複数の証明書があってもまったく問題はありません。 validationプロセスについて詳しく説明します here ;簡単に言えば、次のことが確認されます。
2つの異なる証明書で同じ公開鍵を使用することは問題ではありません。各証明書は、公開鍵とアイデンティティ間のバインディングを表明します。同じバインディングをアサートする10個の証明書がある場合は、それだけ多くのことができます。
実際には、同じ名前とキーを持つ複数の証明書を持つことが、更新の通常の結果です。証明書の有効期限が切れた場合、新しい証明書用に同じキーペアを保持したい場合があります。
あなたのケースでは、関係する証明書はルート証明書であり、つまり「実際の」証明書ではないため、状況は少し異なります。これらはCAによって発行されたものではありません。それらはトラストアンカーのための便利な船です。それにもかかわらず、両方の証明書の比較(openssl x509 -text -noout -in ca.pem
)は、2つある理由を明らかにします(これは非常に悪い理由です)。これは、SHA-1で予測される包括的な過敏症の一部です。実際、ルート証明書は多くの場合自己署名されており(X.509形式の署名にはオプションのフィールドがないため)、署名アルゴリズムはハッシュ関数から始まります。 「古い」証明書(ca.pem
(StartSSLのファイル)はSHA-1で署名を宣言しますが、(Firefoxの内臓からの)「新しい」証明書はSHA-256ベースの署名を使用します。
もう1つの違いは、「新しい」証明書にCRLダウンロードのURLが含まれていないことです。これは、ルート証明書が定義上、発行元のCAによって取り消されないためです。
シリアル番号、ハッシュアルゴリズム、CRLダウンロード用のURLを除いて、2つの証明書は同一です。同じ名前、公開鍵、有効期限が含まれています。私は、SHA-1のブラインドで体系的で熱心な拒絶が、ここでの主な動機だと思います。次の理由により、これは不十分な理由です。