組み込み Linux デバイスに HTTPS サポートを追加しています。次の手順で自己署名証明書を生成しようとしました。
openssl req -new > cert.csr
openssl rsa -in privkey.pem -out key.pem
openssl x509 -in cert.csr -out cert.pem -req -signkey key.pem -days 1001
cat key.pem>>cert.pem
これは動作しますが、たとえば Google Chrome ではいくつかエラーが発生します。
これはおそらくあなたが探しているサイトではありません!
サイトのセキュリティ証明書は信頼されていません!
何か見落としているのでしょうか? これは自己署名証明書を作成する正しい方法でしょうか?
ベストアンサー1
これを 1 つのコマンドで実行できます。
# interactive
openssl req -x509 -newkey rsa:4096 -keyout key.pem -out cert.pem -sha256 -days 365
# non-interactive and 10 years expiration
openssl req -x509 -newkey rsa:4096 -keyout key.pem -out cert.pem -sha256 -days 3650 -nodes -subj "/C=XX/ST=StateName/L=CityName/O=CompanyName/OU=CompanySectionName/CN=CommonNameOrHostname"
秘密鍵をパスフレーズで保護したくない場合は、 ( 「no DES」-nodes
の略)を追加することもできます。そうでない場合は、「少なくとも 4 文字」のパスワードの入力を求められます。
パラメータdays
(365) を任意の数字に置き換えて有効期限を設定できます。その後、「国名」などの入力を求められますが、そのままクリックしEnterてデフォルトを受け入れることができます。
-subj '/CN=localhost'
証明書の内容に関する質問を抑制するために追加します(localhost
目的のドメインに置き換えます)。
自己署名証明書は、事前にブラウザにインポートしない限り、第三者によって検証されません。よりセキュリティが必要な場合は、第三者によって署名された証明書を使用する必要があります。証明する機関(カリフォルニア州)。