除非您想麻烦设置一个成熟的 single-tier 或 two-tier PKI 基础设施(这将是 ServerFault 而不是 StackOverflow 的主题),您可以使用 makecert.exe创建一个自签名 CA 证书并使用它签名的主机证书。
像这样创建 CA 证书:
& makecert.exe -pe -r `
-n "CN=TestCA" `
-ss my `
-sr LocalMachine `
-a sha256 `
-sky signature `
"TestCA.cer"
然后为主机创建证书:
$cn = if ($env:USERDNSDOMAIN) {
"$env:COMPUTERNAME.$env:USERDNSDOMAIN"
} else {
$env:COMPUTERNAME
}
& makecert.exe -pe `
-n "CN=$cn" `
-ss my `
-sr LocalMachine `
-a sha256 `
-sky exchange `
-eku 1.3.6.1.5.5.7.3.1 `
-in "TestCA" `
-is my `
-ir LocalMachine `
-sp "Microsoft RSA SChannel Cryptographic Provider" `
-sy 12 `
"$cn.cer"
CN(通用名称)是您证书的主题,对于主机证书必须与计算机的 FQDN 匹配。
如果您想为本地计算机以外的其他主机创建主机证书,您需要将$cn 设置为其他计算机的名称/FQDN。要从您的证书存储区获取目标计算机export 的证书和私钥(<serial> 是证书的序列号):
& certutil.exe -exportPFX -f -privatekey -p "password" "<serial>" computer.pfx
将computer.pfx复制到您为其生成证书的计算机并按如下方式导入:
& certutil.exe -importPFX -f -privatekey C:\path\to\computer.pfx
导出证书时,系统会提示您输入您指定的密码。
在应该使用由您的 TestCA 签名的证书的所有计算机上,您需要在 Trusted Root Certification Authorities 下为计算机帐户导入 TestCA.cer。
& certutil.exe -f -addstore ca C:\path\to\TestCA.cer
请注意,makecert.exe 不再作为单独下载提供,但您可以从 Windows SDK 获取它(下载 ISO 映像并从子文件夹 \setup\WinSDKTools 运行 SDK Tools 安装程序)。
另请注意,对于任何类型的生产环境,强烈不建议使用这样的临时 CA。