如何使用Powershell New-SelfSignedCertificate设置授权密钥标识符

yduiuuwa  于 2023-08-05  发布在  Shell
关注(0)|答案(1)|浏览(171)
New-SelfSignedCertificate -Subject "CN=me.com, OU=ounit, O=company, L=state, C=country" -FriendlyName "me.com" 
     -HashAlgorithm SHA256 -KeyLength 4096 -KeyUsage DigitalSignature,KeyEncipherment 
       -NotAfter (Get-Date).AddDays(1024)  -CertStoreLocation cert:\LocalMachine\My 
        -TextExtension @("2.5.29.19={text}CA=false") -KeyExportPolicy Exportable

字符串
我正在使用上面的命令,并尝试在证书上设置此属性:

的数据
我尝试了以下方法,但出现了错误:

-TextExtension @("2.5.29.19={text}CA=false","2.5.29.35={2.5.29.14}")


我知道,在自签名证书中,授权密钥标识符KeyID将被分配给自签名证书中的主题密钥标识符,但正确的方法是什么呢?Microsoft的文档没有明确说明:https://learn.microsoft.com/en-us/powershell/module/pki/new-selfsignedcertificate?view=windowsserver2022-ps
我也没能通过搜索找到任何具体的任务。

7cjasjjr

7cjasjjr1#

使用-TextExtension解决此问题似乎是留给读者的练习。但是如果附加-TestRoot选项,它将有效地“取消隐藏”生成的代码签名证书中的Authority Key Identifier扩展。如文档所述,-TestRoot使用主题为CertReq Test Root的内置CA证书作为代码签名证书的颁发者。例如,下面的PowerShell命令将创建一个代码签名证书,其中包括否则会丢失的扩展名:

$cert = New-SelfSignedCertificate -DNSName "Dev Test Code Signing AKI" -CertStoreLocation Cert:\LocalMachine\My -Type CodeSigningCert -FriendlyName Dev_Code_Signer_AKI -TestRoot

字符串
以下是生成的证书的属性,其中包括Authority Key Identifier扩展名:x1c 0d1x的数据
这个证书在技术上不是自签名的,所以它的状态在右下角被描述为“okay”。根据需要在Intermediate Certificate Authorities/Certificates位置创建的内置颁发者证书是自签名的,并在左上角显示警告。以下是它的属性面板:



如左上角所示,如果导出此证书,然后将其导入到Trusted Root Certification Authorities/Certificates位置,则代码签名的应用程序将在本地Windows系统上运行时可验证。但是,您也可以通过将其导入到其他系统(例如Windows、Linux和OpenJDK环境)上的根CA存储来扩展测试范围。

相关问题