13

重複の可能性:
SSL 証明書サーバー名はどのように解決されますか? keytool を使用して別の名前を追加できますか?

証明書を作成し、CN を xxx.xxx.xxx.xxx 形式のサーバーの IP アドレスに設定しました。しかし、Java でコードを実行しようとすると、HTTPS hostname wrong: should be <xxx.xxx.xxx.xx>エラー メッセージが表示されます。

何が間違っている可能性がありますか?正しい IP アドレスに接続していることは確かです。ただし、証明書でサーバーのポートを指定しませんでした。CN の値を指定するときにポートは必要ですか? しかし、httpsのデフォルトポートである8443を使用しています。また、CNをサーバーのIPアドレスから「localhost」に変更してみました。その後動作します。CN部分がIPアドレスを値として受け入れないかどうか考えていますか?

CN がどのように機能するか、また CN に必要な値を教えてください。

ありがとう!

4

1 に答える 1

27

証明書に入力する必要がある ID は、URL で探している ID である必要があります。たとえば、 を使用している場合https://www.example.net、証明書は に対して有効である必要がありますwww.example.net。を使用している場合はhttps://10.0.0.1/、証明書が に対して有効である必要があります10.0.0.1

証明書のサブジェクト DN の共通名 RDN は通常、(a) サブジェクトの別名 DNS エントリがなく、(b) IP アドレスではなくホスト名を探している場合にのみ使用されます。これは、RFC 2818 セクション 3.1で定義されています。

タイプ dNSName の subjectAltName 拡張が存在する場合、それを ID として使用する必要があります。それ以外の場合は、証明書の Subject フィールドの (最も具体的な) Common Name フィールドを使用する必要があります。Common Name の使用は既存の慣行ですが、推奨されておらず、証明機関は代わりに dNSName を使用することをお勧めします。

[...]

場合によっては、URI がホスト名ではなく IP アドレスとして指定されます。この場合、iPAddress subjectAltName が証明書に存在し、URI の IP と正確に一致する必要があります。

一般に、証明書で IP アドレスを使用することはお勧めしません ( RFC 6125に記載されている問題を参照してください。ただし、どうしても必要な場合は、IP アドレスが IP アドレス タイプの SAN エントリであり、生成できる証明書が必要です。この回答で説明されているように。

于 2012-07-29T16:13:33.083 に答える