makecert
「Subject Alternative Name」フィールドを使用して証明書を作成するにはどうすればよいですか?
-eku オプションを使用して「Enhanced Key Usage」などのいくつかのフィールドを追加できます。-san オプションを試しましたが、makecert は気に入りません。
これは自己署名証明書であるため、IIS を使用して何かを作成して CA に送信する方法は適切ではありません。
makecert
「Subject Alternative Name」フィールドを使用して証明書を作成するにはどうすればよいですか?
-eku オプションを使用して「Enhanced Key Usage」などのいくつかのフィールドを追加できます。-san オプションを試しましたが、makecert は気に入りません。
これは自己署名証明書であるため、IIS を使用して何かを作成して CA に送信する方法は適切ではありません。
Makecert は SAN をサポートしていないように見えるため、OpenSSL を使用して IIS で使用する SAN を含む証明書を作成しました。それについての私のブログ記事をチェックしてください:
IIS 7 には、SSL 証明書を作成するための使いやすいウィザードがいくつか用意されていますが、強力なものではありません。私がしなければならなかったことは、x.509 V3 拡張子、つまりサブジェクト代替名、別名 SAN を含む SSL 証明書を作成することでした。SAN が行うことは、Web サイト証明書が複数の URL ドメイン名によって着信要求を検証できるようにすることです。これは、Web サーバーが WCF サービスなどの Web サービスを実行している場合、および他の Web サービスがサービス指向アーキテクチャのように SSL 接続を介して Web サービスに接続している場合に非常に重要です。デフォルトの SSL 検証ハンドラー ルーチンをオーバーライドするために特別なコードが Web サービスに追加されない限り、証明書の共通名 (CN) は着信要求 URL ドメインと一致する必要があります。したがって、要求が FQDN を使用して行われた場合、証明書には CN または SAN として FQDN が含まれている必要があります。
SAN が助けに… SAN は、とりわけ DNS 名と IP アドレスをサポートします。そのため、サーバーの FQDN と IP アドレスの SAN を使用して証明書を作成することにより、他の Web サービスが接続できる方法が増えます。
証明書を生成できるツールは多数あります: makecert.exe、keytool.exe (java)、selfssl.exe、openssl.exe。さらに、Windows Vista および Server 2008 以降、Microsoft は CertEnroll API を追加しました。この API は、COM インターフェイスを介してプログラムで証明書を作成することもできます。
OpenSSL は、まさに私が必要としていたことを実行することになりました。プロセスはかなり簡単でした。
- OpenSSL 構成ファイルを作成します。
[必要] 識別名 = 必要な識別名 x509_extensions = v3_req プロンプト = いいえ [必要な識別名] C = US ST = VA L = どこか O = MyOrg OU = MyOU CN = MyServerName [v3_req] keyUsage = keyEncipherment、dataEncipherment extendedKeyUsage = serverAuth subjectAltName = @alt_names [alt_names ] DNS.1 = MyServerName DNS.2 = 10.0.1.34 IP.1 = 10.0.1.34 IP.2 = 192.167.20.1
- OpenSSL で x509 リクエストを作成する
openssl.exe req -x509 -nodes -days 730 -newkey rsa:2048 -keyout C:\cert.pem -out C:\cert.pem -config C:\PathToConfigFileAbove.txt
- キーペアを含む PFX を作成する
openssl.exe pkcs12 -export -out C:\cert.pfx -in C:\cert.pem -name "My Cert" -passout pass:mypassword
サーバー証明書領域のインポート リンクを使用して、PFX を IIS にインポートします。
証明書を IIS Web サイトにバインドします。
そしてビオラさん、SAN を使用する IIS 用の SSL 証明書があることがわかっているので、証明書の検証エラーなしで複数のドメイン名を使用して接続できます。
出典: Andy Arismeti によるOpenSSL を使用した SAN による証明書の作成、2011 年 9 月 1 日木曜日