OpenSSL 1.1.1bを使用して、次のコマンドで自己署名証明書を作成しました(2019年2月26日)。
openssl req -nodes -new --days 900 -subj /CN=192.168.0.104:8080 -x509 -keyout server.key -out server.crt
次に、Windowsを使用しました mmc 結果のserver.crtをコンソールルートにインポートしました->証明書-現在のユーザー->信頼されたルート証明機関->証明書
chrome tho at 192.168.0.104:8080のページに移動すると、ページが「安全ではない」と表示されます(証明書情報を確認するとパスには「この証明書は問題ありません」と表示されます。
私はAndroid電話で同様のプロセスを行い、それを私の電話にアップロードし、暗号化と認証情報の設定セクションで証明書を追加しました。
しかし、ページに移動すると、「サーバーの証明書がURLと一致しません」と表示されます。
ここで何が悪いのですか?
更新:
現在req.confを使用しています
[req]
distinguished_name = req_distinguished_name
x509_extensions = v3_req
Prompt = no
[req_distinguished_name]
C = US
ST = CA
L = Belmont
O = N/A
OU = N/A
CN = 192.168.0.104
[v3_req]
subjectAltName = @alt_names
[alt_names]
DNS.0 = localhost
IP.0 = 192.168.0.104
そして、証明書とキーを作成します:
openssl req -x509 -nodes -days 999 -newkey rsa:2048 -keyout server.key -out server.crt -config req.conf
次に、WindowsでChromeを再起動しました(2019年も、設定を有効にするためにプログラムを再起動する必要があるとは思えません)。 Windows chromeすると、問題なく認識されます。
ただし、Androidでは、この証明書をインストールすることもできません。「証明書のインストールに必要な秘密鍵」と表示されます。これはさらに混乱します。
-addext
_から_req -new -x509
_まで。ただし、それ以外の場合は、設定ファイルでSANを少なくとも論理的に設定する必要があります。ただし、Unixでは、IbelieveWSL、<(commands)
(またはzsh =(commands)
)を使用して、シェルにその構成ファイルを自動一時ファイルとして作成させることができます。以下を参照してください。Chrome 58 で機能するopensslを使用した自己署名証明書の生成
「net :: ERR_CERT_COMMON_NAME_INVALID」エラーを解消できませんchrome自己署名証明書付き
https://security.stackexchange.com/questions/172440/generate-x509-err-cert-common-name-invalid
https://security.stackexchange.com/questions/74345/provide-subjectaltname-to-openssl-directly-on-command-line
https://security.stackexchange.com/questions/158632/burp-suite-although-my-configurations-are-correct-still-chrome-doesnt-allows
ただし、これらのQは、SANエントリタイプDNSを使用するドメイン名の証明書に関するものです。IPadddressの場合は、代わりにIPを使用する必要があります。
PS:通常、8080は代替HTTPに使用され、8443は代替HTTPSに使用されます。 HTTPSに8080を使用すると混乱を招きます。