如何创建比 SHA-1 更强的自签名证书?

Crn*_*ena 8 iis-7.5 self-signed-certificate

对于开发环境,我可以在 IIS7.5 中创建创建自签名证书。但是该证书是 SHA-1 并且最近浏览器都在抱怨它。当我打开 FireBug 时,我看到以下警告:

“该站点使用 SHA-1 证书;建议您使用带有签名算法的证书,这些算法使用比 SHA-1 更强的散列函数。”

所以我的问题是:

1) 有没有办法创建比 SHA-1 更强的自签名证书?

2)如果没有,有没有办法告诉浏览器停止显示这些警告?

更新

我最终使用了@vcsjones 的答案,但这只是到目前为止。在使它工作之前,我必须解决几个问题。

1)由于某种原因,我无法导入带密码的证书。所以我最终创造了一个它没有。

2) 当我通过 IIS 导入 .pfx 证书时,当我尝试在“编辑绑定”中应用新证书时,我不断收到“指定的登录会话不存在”。所以我做了很少的研究,发现这个SO 答案很有用,特别是 Mike L 的答案。

我要补充的另一件事是,当您导入证书时,请记住选择 .pfx 证书。导入向导的默认选择是 *.cer,您可以导入它(我犯了错误),但后来我无法在 IIS 服务器证书中看到证书。当我仔细观察时,图标中缺少小钥匙。现在,我做了研究,我可以通过KB-889651文章修复它。因此,请确保您导入 .pfx,它无需修复即可工作。

另请注意,如果您对此证书存在信任问题,请将其也导入“受信任的根证书颁发机构”。

vcs*_*nes 8

当然。作为makecertWindows SDK 一部分的实用程序可以做到这一点:

makecert -len 2048 -r -a sha256 -sv private.pvk -n CN=localhost cert.cer
Run Code Online (Sandbox Code Playgroud)

-a参数设置哈希算法。这会输出一个 PVK 和一个 DER .cer 文件。您当然也可以将通用名称更改为您喜欢的任何名称,我只是以 localhost 为例。您可以使用pvk2pfx(也是 SDK 的一部分)将这些组合成 PFX(IIS 在导入证书时更喜欢使用):

pvk2pfx -spc cert.cer -pvk private.pvk -pfx out.pfx
Run Code Online (Sandbox Code Playgroud)

这只需要makecert生成的两个文件并将它们组合成一个 PKCS12 .pfx 文件。

使用生成的 PFX 文件,您将打开 IIS 并将其导入到服务器证书下,然后更改站点的绑定以使用新证书。


小智 6

我在工作中使用的是锁定的 Windows 7 Enterprise 计算机,因此我无法安装 Windows SDK 来访问makecert. 这是我创建 sha256 自签名证书的方法(取自https://core.telegram.org/bots/self-signed):

  1. 决定要将证书保存在哪个目录中
  2. 在该目录中创建一个template.txt包含以下内容的文本文件:

    [NewRequest]
    
    ; At least one value must be set in this section
    Subject = "CN={your.domain.com}"
    KeyLength = 2048
    KeyAlgorithm = RSA
    HashAlgorithm = sha256
    ;MachineKeySet = true
    RequestType = Cert
    UseExistingKeySet=false ;generates a new private key (for export)
    Exportable = true ;makes the private key exportable with the PFX
    
    Run Code Online (Sandbox Code Playgroud)
  3. 替换{your.domain.com}为您将用于访问您的网站的地址,例如"CN=localhost"

  4. 打开命令提示符并切换到您的证书目录
  5. certreq -new template.txt RequestFileOut
  6. 您需要知道序列号,因此运行certutil -store -user my以获取包含序列号的转储
  7. 替换{SERIALNUMBER}为转储中的序列号和{YOURDER}.crt输出文件的名称:certutil -user -store -split my {SERIALNUMBER} {YOURDER}.crt
  8. 替换{YOURDER}.crt为输入文件{YOURPEM}.cer的名称和输出文件的名称:certutil -encode {YOURDER}.crt {YOURPEM}.cer
  9. 替换{your.domain.com}为您的实际(测试)域名和{YOURPKCS}.pfx输出文件的名称:certutil -exportpfx -user {your.domain.com} {YOURPKCS}.pfx NoChain

之后,我转到 IIS 管理器,站点 -> {站点名称} -> 绑定...(在“编辑站点”下)。然后我点击了 https/443,因为我已经设置了它,编辑...并从列表中选择了新证书。

Firefox 抱怨我的网站使用的是自签名证书,所以我只是将其添加为例外,瞧!有效!


归档时间:

查看次数:

14783 次

最近记录:

8 年,5 月 前