web-dev-qa-db-ja.com

makecertを使用して、「Subject Alternative Name」フィールドを自己署名証明書に追加または作成します。

「Subject Alternative Name」フィールドでmakecertを使用して証明書を作成するにはどうすればよいですか?

enter image description here

someフィールドを追加できます。たとえば、-ekuオプションを使用して「拡張キー使用法」を追加し、-sanオプションを試しましたが、makecertはそれを好みません。

これは自己署名証明書であるため、IISを使用してCAに送信するものを作成する方法は適切ではありません。

29
wal

MakecertはSANをサポートしていないようなので、IIS OpenSSLを使用して使用するためにSANで証明書を作成しました。それについての私の投稿を確認してください。

http://andyarismendi.blogspot.com/2011/09/creating-certificates-with-sans-using.html

14
Andy Arismendi

さらに簡単な方法は、デフォルトでSANを含む)New-SelfSignedCertificate PowerShellコマンドレットを使用することです。単一のコマンドで証明書を作成してストアに追加できます。

New-SelfSignedCertificate -DnsName localhost -CertStoreLocation cert:\LocalMachine\My

管理者としてPowerShellを実行する必要があることに注意してください。

28
DanO

更新

以下のmakecertメソッドを使用して生成された証明書は、実際には「サブジェクトの別名」を生成しないため、すべてのブラウザーで確実に機能しません。

証明書を調べると、実際にはSubject Alternative Nameフィールドがないが、代わりにCNフィールドで複数のSubjectが指定されていることがわかります。

例えば。

Subject:
CN = blah.foo.corp
CN = blah

一方、実際の「SAN」証明書は次のようなものになります。

Subject Alternative Name:
DNS Name=blah.foo.corp
DNS Name=blah

「Common Name」の「Subject」フィールドと「Subject Alternative Name」フィールドの違いと履歴を理解するには、 (間もなく)not-so Common Name を読むことをお勧めします。

したがって、makecertcannotを使用して真の「SAN」証明書を生成しているようであり、opensslなどの他のツールを使用する必要があります。


元の回答:

少なくともVisual Studio 2012に付属しているmakecertのバージョンでは、カンマ区切りリスト-n "CN=domain1, CN=domain2"を指定するだけで、複数の件名を指定できます

例えば。 (Technetブログから Makecert.exe SAN and Wildcard certificate

makecert -r -pe -n "CN=*.fabrikam.com, CN=*.contoso.com" -b 01/01/2010 -e 01/01/2100 -eku 1.3.6.1.5.5.7.3.1,1.3.6.1.5.5.7.3.2,1.3.6.1.5.5.7.3.3,1.3.6.1.5.5.7.3.4 -ss my -sr localMachine -sky exchange -sp "Microsoft RSA SChannel Cryptographic Provider" -sy 12 -len 2048
8
Nathan