OpenSSLと次のコマンドを使用して証明書を作成しました。
openssl req -x509 -nodes -days 365 -subj '/C=DE/ST=state/L=city/CN=hostname' -newkey rsa:1024 -keyout mycert.pem -out mycert.pem
openssl pkcs12 -export -out mycert.pfx -in mycert.pem -name "My Certificate"
私のWindows 7マシンにインストールしました。次に、暗号化されたメールを送信しようとしましたが、メールアドレスに一致する証明書がないというメッセージが表示されました
何が欠けていますか?
それらの洞察をありがとう、トーマス。メールアドレスを追加しましたが、メッセージはまだポップアップします:-(ルート証明書についても読みましたが、そのようなものが必要ですか?
証明書は、公開鍵をアイデンティティにバインドします。 S/MIMEが使用するidentityの概念は、電子メールアドレスです。つまり、証明書をS/MIMEで使用できるようにするには、メールアドレスが含まれている必要があります。
次のように、電子メールアドレスを件名に追加できます(シンプルですが正式には非推奨)。
openssl req -x509 -nodes -days 365 -subj '/C=DE/ST=state/L=city/CN=Sven/[email protected]' -newkey rsa:1024 -keyout mycert.pem -out mycert.pem
または(「通常のソリューション」ですが、より複雑です)「Subject Alt Name」拡張機能の一部として(OpenSSLでは、-extensions
フラグと構成ファイル。 ドキュメント を参照)。
emailAddress
ではなくsubjectAltName
を使用してください。これは、単一のコマンドで、openssl.cnf
ファイルを編集せずに実行できます。
openssl req -x509 \
-newkey rsa:4096 \
-sha256 \
-nodes \
-days 3650 \
-keyout smime.key \
-out smime.crt \
-subj "/CN=Nobody" \
-extensions SAN \
-config <(cat /etc/ssl/openssl.cnf; echo '[SAN]'; echo 'subjectAltName=email:[email protected]')
詳細については、次を参照してください。 subjectAltNameをコマンドラインでopensslに直接指定