X.509証明書のsubjAltTag拡張機能は、ドメイン名、電子メールアドレス、URIなどを取り込むことができます。subjAltTagにURIしか含まれていないX.509を試してみたところ、機能していないようです。これがスクリーンショットです:
アドレスバーのURI(上部)は、証明書のURIと同じです。 www.google.comがlocalhostを指すようにhostsファイルを更新しました。彼らの証明書はほとんどgoogle.comの証明書を辞任したものです。
私の質問は...なぜそれが機能しないのですか?ブラウザはドメイン名のみをサポートしていますか?
X.509証明書とそれに対応するRSA秘密鍵が添付されています。
-----BEGIN RSA PRIVATE KEY-----
MIICXAIBAAKBgQCaSBi+M4Gl/qWFOM24QrioNLplsW0MwLH/jDpWdckJIm979pPv/qUt6MUNgq7r
Di87poo6j8Ak726He6Br1bNJoRiTzHtbHqAFVgNp4Cxv5pade8zr4qBX8j9Pl76oq/MB2Yfcg7Rb
N/kblPBlsLwWNfrBt2nLZgn47pccUioNsQIDAQABAoGAFGJgOoktoRQDJJX7wFO4eCj3U8ZchSnU
mtIZRyEq3bUaC8PpifUYN/egSYexusbWAMihTNl/ZqHn9aik6nqCxIqYxgx9grybGOBo36qJzFSC
cszNWeEd1VAi7gJBHSZlSWhOrEHM0faYXh+DRisVTGSnmRsNIltu7Havf5KXua0CQQD9rJRF3lSB
ci3/d5c3Z+S52Lkv1zIvHhsFOYn39LCJVSUv9ufok5d2ktgFlYcVhsdr4La9ks4L8jQeiWQaWqiX
AkEAm7I5foaUX3P71dvaIH2fPXPLMF8h9jcK37YXTkaSeh1waKPUofSDcK2kJq86EZI3HA4bGVk9
QPvzmHGUzAI89wJBAMob0Pqlu+ByjzFmH+W18eccQ9dY9hPSQab1A/a5Tlnsq7c+WeDUjq2bK1+v
lbPR8VsC67W4nE+qRlo6DrZsmrsCQF36V+XdSdXL5miRybnu2Z14NV8/LPq3AqNCABNJWcTH3D/t
E72mH2h2By0qe3x7qzQN96F3UhfVfJW5iT0S5MUCQFhYfOylO4Yi13hpjOQb8M31sCKZUBUJIipP
c/8PFDyfJiTt61ZiMnYgIst5T2ai98S8+XZZwEvxNyu1uiQ2tbI=
-----END RSA PRIVATE KEY-----
-----BEGIN CERTIFICATE-----
MIIDaDCCAtOgAwIBAgIBCTALBgkqhkiG9w0BAQUwazELMAkGA1UEBgwCVVMxEzARBgNVBAgMCkNh
bGlmb3JuaWExFjAUBgNVBAcMDU1vdW50YWluIFZpZXcxEzARBgNVBAoMCkdvb2dsZSBJbmMxGjAY
BgNVBAMMEXd3dy5mcm9zdGplZGkuY29tMB4XDTEyMDMyMTE2MzcyM1oXDTEzMDQyMTE2MzcyM1ow
azELMAkGA1UEBgwCVVMxEzARBgNVBAgMCkNhbGlmb3JuaWExFjAUBgNVBAcMDU1vdW50YWluIFZp
ZXcxEzARBgNVBAoMCkdvb2dsZSBJbmMxGjAYBgNVBAMMEXd3dy5mcm9zdGplZGkuY29tMIGdMAsG
CSqGSIb3DQEBAQOBjQAwgYkCgYEAmkgYvjOBpf6lhTjNuEK4qDS6ZbFtDMCx/4w6VnXJCSJve/aT
7/6lLejFDYKu6w4vO6aKOo/AJO9uh3uga9WzSaEYk8x7Wx6gBVYDaeAsb+aWnXvM6+KgV/I/T5e+
qKvzAdmH3IO0Wzf5G5TwZbC8FjX6wbdpy2YJ+O6XHFIqDbECAwEAAaOCASAwggEcMAwGA1UdEwEB
/wQCMAAwOQYDVR0fAQEABC8wLTAroCmgJ4YlaHR0cDovL2NybC50aGF3dGUuY29tL1RoYXd0ZVNH
Q0NBLmNybDArBgNVHSUBAQAEITAfBggrBgEFBQcDAQYIKwYBBQUHAwIGCWCGSAGG+EIEATB1Bggr
BgEFBQcBAQEBAARmMGQwIgYIKwYBBQUHMAGGFmh0dHA6Ly9vY3NwLnRoYXd0ZS5jb20wPgYIKwYB
BQUHMAKGMmh0dHA6Ly93d3cudGhhd3RlLmNvbS9yZXBvc2l0b3J5L1RoYXd0ZV9TR0NfQ0EuY3J0
MC0GA1UdEQEBAAQjMCGGH2h0dHBzOi8vd3d3Lmdvb2dsZS5jb20vYXNkZmFzZGYwCwYJKoZIhvcN
AQEFA4GBAEWifm73z2rOJd9Io7egHEFRG+GNpUi+owYnSM07cStlwKg0UXesKxEO9Pud942WqwIt
TJUpYuUWyLupMh7R5ZfbrYsFfohwKqctKZLt/0+Lup2SNHDk79mJ0bsEql7ktMmSCSVE7AHt4j2t
hYm2aSTho/PLcjknV7Ul60csqVXJ
-----END CERTIFICATE-----
Firefoxが私に与えている特定のエラーは次のとおりです。
The certificate is not trusted because it is self-signed.
The certificate is not valid for any server names.
何か案は?
HTTPS接続を作成するとき、サーバーのIDを確認するために使用されるルールは、 RFC 2818(セクション3.1) で指定されたもののままです。
タイプdNSNameのsubjectAltName拡張が存在する場合、それは
アイデンティティとして使用されます。それ以外の場合、(最も具体的な)共通名
証明書の件名フィールドのフィールドを使用する必要があります。が
共通名の使用は既存の慣行であり、非推奨であり、認証局は代わりにdNSNameを使用することをお勧めします。[...]
場合によっては、URIはホスト名ではなくIPアドレスとして指定されます。この場合、iPAddress subjectAltNameが存在している必要があります
証明書に含まれ、URIのIPと正確に一致する必要があります。
証明書に、タイプDNS(dNSName
)のサブジェクト代替名(SAN)拡張がありません。したがって、サブジェクトDNの共通名にフォールバックします。
最近の仕様( RFC 6125 )では、他のプロトコル間でのホスト名検証手順が調和しています。ただし、まだ広く実装されていません。
URIの使用を許可し、 this (とりわけ)と表示します。
[...]したがって、このドキュメントでは、Uniform Resource Identifiers [URI]をDNSドメイン名(URI「ホスト」コンポーネントまたは同等のもの)を介して通信する方法としてのみ説明し、そのようなサービスの他の側面を通信する方法としては説明しません特定のリソース(URI「パス」コンポーネントを介して)またはパラメータ(URI「クエリ」コンポーネントを介して)として。
基本的に、スキームとホスト名のみがそのURIから実際に使用されます。これは、DNSよりも限定的であることを意味しますSANエントリを使用を特定のプロトコルに制限します(簡単な説明からわかる限り、ポートさえも)。
この仕様は約1年前に確定されただけで、それほど長くはありません。それがどれほど広く採用されるかは明らかではない。既存のプラクティスの明確化と調和のためには、確かに努力する価値がありますが、以前に使用された仕様(RFC 2818)。とにかくそれをサポートするクライアントはほとんどないので、サービスプロバイダーからの要求はほとんどないと思います。
多くのブラウザは、RFC 2818をそのままでは完全に実装していません(たとえば、サブジェクト名のCNのIPアドレスに寛容であり、SANがない場合など)。
(補足として、クライアント証明書の観点からは、クライアント証明書を検証してURIを使用するPKIX以外の方法を探る WebIDプロジェクト に興味があるかもしれません。さん。)