コマンドラインを介してSSL証明書に複数の電子メールアドレスを追加する方法は?

コマンドラインを介してSSL証明書に複数の電子メールアドレスを追加する方法は?

SubjectAltNameこのアイテムを追加/変更するとわかります。openssl.cnf実現できるしかし、毎回ファイルを変更せずにこれを行う方法はありますか?

ベストアンサー1

openssl.cnf何らかの方法でファイルを台無しにする必要はありません。

次のコマンドは、SANを使用して電子メールの自己署名証明書を生成する方法を示しています[email protected]

openssl req -x509 -newkey rsa:4096 -sha256 -days 3650 -nodes \
  -keyout example.key -out example.crt -subj '/CN=Nobody' \
  -extensions san \
  -config <(echo '[req]'; echo 'distinguished_name=req';
            echo '[san]'; echo 'subjectAltName=email:[email protected]')

ここでの秘密は、OpenSSLがデフォルトファイルなしで実行される[req]のに十分な最小限のセクションを含むことです。openssl.cnf

OpenSSL≥1.1.1では、次のように短縮できます。

openssl req -x509 -newkey rsa:4096 -sha256 -days 3650 -nodes \
  -keyout example.key -out example.crt -subj '/CN=Nobody' \
  -addext 'subjectAltName=email:[email protected]'

ここでは新しいオプションを使用するため、これ以上-addext必要はありません。-extensions-config

生成された証明書の内容を確認することを忘れないでください。

openssl x509 -noout -text -in example.crt

また見なさい:https://security.stackexchange.com/a/198409/133603そしてhttps://stackoverflow.com/a/41366949/19163

おすすめ記事