JavaのkeytoolコマンドとIPアドレス
質問
いることができるように画像を介してhttps URL、を有きな課題となりました。私は生成するキーストアのJavaのkeytoolコマンドです。場合に指定し、共に名義(CN)と同等の私のホスト名など、CN=JONMORRA、そしてクエリ送私のホスト名などの https://JONMORRA:8443/ その働きます。しかし、場合に指定し、通称としてipアドレス、CN=192.168.56.1、クエリによっipアドレスなど https://192.168.56.1:8443/ そのエラ
HTTPSのホスト名思っていたが、あるきっかけですべき <192.168.56.1>
である旨を私のホスト名が間違っているのは、もありがとうございまし指定されたkeystore.
使用したいのだがipアドレスの代わりにホスト名だったのでクエリの間には、LinuxおよびWindows箱を気にせずにホスト名.
なぜそのような光を受けていないipアドレスは、どうすればよいですか?
感謝
解決
このスニペットもおまかせください:
import javax.net.ssl.HostnameVerifier;
import javax.net.ssl.HttpsURLConnection;
import javax.net.ssl.SSLSession;
HostnameVerifier hv = new HostnameVerifier() {
public boolean verify(String urlHostName, SSLSession session) {
System.out.println("Warning: URL Host: " + urlHostName + " vs. " + session.getPeerHost());
return true;
}
};
HttpsURLConnection.setDefaultHostnameVerifier(hv);
いう、このコードが、うまくいきませんでくださいポストに何を印刷 urlHostName
や session.getPeerHost()
.
また、なぜ有すWindowsとLinuxで共箱の相互運用性の使用を必要とするのではなくIPアドレスホスト名?
他のヒント
のHTTPS仕様(RFC2818)はかなり明確にサーバーの本人確認のための、IPアドレス:対象の代替名(IP)のエントリが存在する必要がある証明書がCNのDNうとしてスクフォースメンバーで解決のためのホスト名)となります。
ませんが、すべてのお客様を特定しないすべてのブラウザの実施とこの検証は、Javaのデフォルトホスト名を検証する。
を証明書IPサン入場できるOpenSSL例えばやはりこの問い/回答)、Java7の keytool
.
この質問に詳しくは: どのようにSSL証明書サーバの名前解決/を追加できま代替名がkeytoolを使?
るビジネスに繋げを生成する有効な証明書を使用 keytool
, 使用します:
keytool -keystore keystore.jks -genkey -ext SAN=IP:{IP_ADDRESS}
例えば:
keytool -keystore keystore.jks -genkey -ext SAN=IP:192.168.1.1