如何为AD CS签发的代码签名证书指定Issued To属性为公司名称?
如何为AD CS签发的代码签名证书指定Issued To属性为公司名称?
我来帮你解决这个问题!你遇到的Issued To显示为个人姓名的情况,本质是因为AD CS默认用了当前登录用户的AD属性填充证书的Subject字段,而ClickOnce恰好读取这个字段来展示安装提示。下面是具体的解决步骤:
修改request.inf配置文件,明确指定证书Subject
打开你用来生成CSR的request.inf文件,在[NewRequest]段添加或修改Subject配置,把公司名称设置为通用名称(CN),这就是Issued To会显示的核心内容:[NewRequest] Subject = "CN=你的公司全称, O=你的组织名称" ; CN对应Issued To的主显示内容,O是可选的组织信息补充 ; 保留其他代码签名所需的配置项,比如KeyLength=2048、KeySpec=2等用修改后的inf重新生成CSR
执行原命令重新生成包含正确Subject的请求文件:certreq.exe -new -q -config "<servername>\<ca-name>" request.inf request.csr调整证书模板,允许使用请求中的Subject
这一步很关键,如果你的CodeSigning2模板设置为从AD用户属性提取Subject,CA会直接忽略CSR里的自定义配置:- 打开AD CS管理控制台,找到「证书模板」节点
- 右键点击
CodeSigning2模板,选择「属性」 - 切换到「使用者名称」标签页
- 选择「在请求中提供」选项,点击确定保存更改
重新提交CSR获取证书
用修改后的CSR再次提交到CA:certreq.exe -submit -q -config "<servername>\<ca-name>" -attrib "CertificateTemplate:CodeSigning2" request.csr response.cer cert.p7b response.ful
这样生成的证书,Issued To就会显示你指定的公司名称,ClickOnce安装时的提示也会正确展示公司名称,不会再显示个人姓名了。
备注:内容来源于stack exchange,提问作者Lorenzo Righini
相关产品推荐
相关产品推荐

