1

我正在尝试通过makecert以下方式创建自签名证书:

makecert -n "CN=TuyenTk CA, C=VN, ST=Hanoi, L=Hoan Kiem" -cy authority
-h 1 -a sha1 -sv "D:\TuyenTk CA.pvk" -r "D:\TuyenTk CA.cer"


makecert -n "CN=TuyenTk" -ic "D:\TuyenTk CA.cer" -iv "D:\TuyenTk CA.pvk" 
-eku "1.3.6.1.5.5.7.3.3" -cy end -a sha1 -h 0 -sky exchange -pe "D:\TuyenTk.cer"


pvk2pfx -pvk "D:\TuyenTk CA.pvk" -spc "D:\TuyenTk CA.cer" 
-pfx "D:\TuyenTk.pfx" -pi "myPassWord"

第一行是 make self sign cert (CA cert),第二行是使用 CA cert sign other cert,最后是 generate pfxfile 对 exe 文件进行签名。

虽然以上 3 个命令都报告成功,但当我双击TuyenTk CA.cerTuyenTk.cer时,在 Details 选项卡窗口中告诉基本约束很关键。因此,当我使用该TuyenTk.pfx文件对我的 exe 文件进行签名时,在“数字签名”选项卡中,证书无效:尚未观察到证书基本约束扩展

我在安装之前查看了证书的详细信息,在受信任的根目录或证书存储的个人位置安装后,我仍然看到错误。

我该如何解决这个问题?感谢!

4

1 回答 1

0

要创建您的自签名根 CA 证书,请尝试以下选项:

    makecert -r -pe -m 1200 -len 2048 -n "CN=TuyenTk CA, C=VN, ST=Hanoi, L=Hoan Kiem" -ss CA -sr CurrentUser -a sha1 -sky signature -cy authority -sv "D:\TuyenTk_CA.pvk" "D:\TuyenTk_CA.cer"

我省略了“-h 1”,以便在基本约束中为您提供无限的签名深度;一些 SSL 包不喜欢无限的路径长度,因此您可以拥有多层密钥放入“-h 5”或您认为可以满足您需求的任何值。我添加的开关:

    -pe              Make private key exportable
    -m 1200          Make CA key valid for 100 years (1200 months)
    -ss CA           This key goes into the CA certificate store
    -sr CurrentUser  Certificate store location
    -sky signature   Key type (use for signing)

我还在名称中添加了下划线(而不是空格);可能不是必需的,但我的证书文件没有空格(这些实用程序有时可能很奇怪)。

导入 CA 证书时,请确保将其导入“受信任的根证书颁发机构\本地计算机”物理存储位置。例如,在 Admin cmd 提示符下使用它:

    certutil -addstore -v root "D:\TuyenTk_CA.cer"

这些步骤在 XP 上对我有用,现在在 Windows 7 上也可以使用。希望这会有所帮助!

  • 德拉克
于 2015-06-28T08:28:26.143 回答