And*_*ndi 7 iis website ssl certificate
有谁知道如何创建自签名 SSL 证书以与具有主题备用名称 (SAN) 的 IIS (7) 一起使用?我需要证书才能像这样验证主机名和 IP 地址:
我一直在看的一些事情:
Windows SDK:makecert.exe(不支持 SAN)
Windows API CertEnroll (Server 2008):使用 PowerShell 脚本(我已经能够让它与 IIS 一起使用,但是当我将证书导出到 Java 密钥库(必须有)时,我收到一个错误 keytool 错误:'java.lang .例外:输入不是 X.509 证书')
以下是使用 CertEnroll 的 PowerShell 脚本示例:http : //blogs.technet.com/b/vishalagarwal/archive/2009/08/22/generating-a-certificate-self-signed-using-powershell-and-certenroll-接口.aspx
如果我可以让我的 PowerShell 脚本创建一个 Java 使用 CertEnroll API 识别的证书,那就太好了,但任何在这一点上有效的东西我都会很高兴听到的。
我找到了一种使用 OpenSSL 执行此操作的方法。我希望使用 CertEnroll,但由于它给我带来了与 Java 的互操作性问题,我将只使用 OpenSSL。
下面是我如何使用 OpenSSL 为 IIS 创建具有主题备用名称的证书。
首先创建一个 OpenSSL 配置文本文件:
[req]
distinguished_name = req_distinguished_name
x509_extensions = v3_req
prompt = no
[req_distinguished_name]
C = US
ST = VA
L = SomeCity
O = MyCompany
OU = MyDivision
CN = ANDY
[v3_req]
keyUsage = keyEncipherment, dataEncipherment
extendedKeyUsage = serverAuth
subjectAltName = @alt_names
[alt_names]
DNS.1 = andy
DNS.2 = 192.168.2.12
IP.1 = 192.168.2.12
IP.2 = 192.167.20.1
Run Code Online (Sandbox Code Playgroud)
然后运行以下 OpenSSL 命令:
openssl.exe req -x509 -nodes -days 730 -newkey rsa:2048 -keyout C:\cert.pem -out C:\cert.pem -config C:\PathToConfigFileAbove.txt
openssl.exe pkcs12 -export -out C:\cert.pfx -in C:\cert.pem -name "My Cert" -passout pass:mypassword
Run Code Online (Sandbox Code Playgroud)
这将在可以导入到 IIS 的 PFX 文件中为您创建一个证书。我用powershell自动化了这个:
# Get the certificate from the PFX file.
$pfxcert = new-object system.security.cryptography.x509certificates.x509certificate2
$pfxcert.Import(
"C:\cert.pfx",
"mypassword",
[System.Security.Cryptography.X509Certificates.X509KeyStorageFlags]::MachineKeySet -bor `
[System.Security.Cryptography.X509Certificates.X509KeyStorageFlags]::Exportable
)
# Add the certificate to the windows stores.
Get-Item -Path cert:\LocalMachine\My, cert:\LocalMachine\root | ForEach-Object {
$store = $_
$store.Open([System.Security.Cryptography.X509Certificates.OpenFlags]::ReadWrite)
$store.Add($pfxcert)
$store.Close()
}
Add-PSSnapin -Name WebAdministration # IIS 7 Powershell module.
Push-Location -Path IIS:\SslBindings
# Create new IIS SSL bindings.
Get-Item -Path "cert:\LocalMachine\My\$($pfxcert.Thumbprint)" | New-Item "0.0.0.0!443"
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
25237 次 |
| 最近记录: |