ChromeとMozillaで受け入れられる、localhostに実装する自己署名証明書を生成する最新の方法を誰かが提案できますか?
私はopenssl世代を試してみましたが、Mozillaは発行者が信頼できないと文句を言っています。
Centos 7、nginx
ChromeとMozillaで受け入れられる、localhostに実装する自己署名証明書を生成する最新の方法を誰かが提案できますか?
私はopenssl世代を試してみましたが、Mozillaは発行者が信頼できないと文句を言っています。
Centos 7、nginx
回答:
警告:自分の認証局を運営するという地雷原に飛び込む前に、セキュリティへの影響を調査する必要があるかもしれません!
ただし、必要な場合は、https://localhost/
警告メッセージなしですばやく簡単なCAを読んでください...
次のテキストファイルを作成します。
# OpenSSL configuration for Root CA
[ req ]
prompt = no
string_mask = default
# The size of the keys in bits:
default_bits = 2048
distinguished_name = req_distinguished_name
x509_extensions = x509_ext
[ req_distinguished_name ]
# Note that the following are in 'reverse order' to what you'd expect to see.
countryName = gb
organizationName = Test
commonName = Test Root CA
[ x509_ext ]
basicConstraints=critical,CA:true,pathlen:0
keyUsage=critical,keyCertSign,cRLSign
名前を付けて保存し、root.cnf
次のコマンドでリクエストを生成します。
$ openssl req -x509 -new -keyout root.key -out root.cer -config root.cnf
これにより、ルートCA証明書(root.cer
)とルートCA秘密鍵(root.key
)が作成されます。これらは秘密にしておく必要があります。秘密鍵のパスワードの入力を求められます-強力なパスワードを選択してください。
次に、サーバー証明書の構成ファイルを作成します。
# OpenSSL configuration for end-entity cert
[ req ]
prompt = no
string_mask = default
# The size of the keys in bits:
default_bits = 2048
distinguished_name = req_distinguished_name
x509_extensions = x509_ext
[ req_distinguished_name ]
# Note that the following are in 'reverse order' to what you'd expect to see.
countryName = gb
organizationName = Test
commonName = localhost
[ x509_ext ]
keyUsage=critical,digitalSignature,keyAgreement
subjectAltName = @alt_names
# Multiple Alternate Names are possible
[alt_names]
DNS.1 = localhost
# DNS.2 = altName.example.com
名前を付けて保存しserver.cnf
、次のコマンドでリクエストを生成します。
openssl req -nodes -new -keyout server.key -out server.csr -config server.cnf
上記は、server.key
保護する必要がある別の秘密鍵()を生成します。この場合、キーはパスワードで保護されていませんが、-nodes
オプションを削除してパスワードを追加できます。
最後に、server.cnf
ファイルの新しいルートCAと拡張子を使用してリクエストに署名します(便宜上)。
$ openssl x509 -req -in server.csr -CA root.cer -CAkey root.key -set_serial 123 -out server.cer -extfile server.cnf -extensions x509_ext
注:-set_serial
オプションには任意の乱数を選択してください。
ルートCAの生成時に入力したパスワードを要求されます。
サーバー証明書(server.cer
)が生成されます。
次に、ルートCA証明書(root.cer
)をFirefoxのトラストアンカーストアに追加し、次のコマンドでテストを実行します。
$ sudo openssl s_server -key server.key -cert server.cer -accept 443 -www
注:サーバーがすでにポート443で実行されている場合、エラーが発生する可能性があります。その場合は、実行中のサーバーを停止するか、上記のポート番号を別の未使用のポートに変更します。
あなたがnaviateときhttps://localhost
(またはhttps://localhost:<port>
Firefoxであなたは上記のポート番号を変更した場合)、あなたは今、何の警告を参照してくださいてはならないとOpenSSLのインストールが提供できる暗号のリストを提示されます。
結果に満足したら、server.key
およびserver.cer
をWebサーバーに追加し、それに応じて構成します。
stinguished_name
あるべきdistinguished_name