600字范文,内容丰富有趣,生活中的好帮手!
600字范文 > 生成数字签名证书并给powershell脚本认证

生成数字签名证书并给powershell脚本认证

时间:2024-01-14 02:50:18

相关推荐

生成数字签名证书并给powershell脚本认证

首次在计算机上启动 Windows PowerShell 时,现用执行策略很可能是 Restricted(默认设置)。

Restricted 策略不允许任何脚本运行。

若要了解计算机上的现用执行策略,请键入:

get-executionpolicy

若要在本地计算机上运行您编写的未签名脚本和来自其他用户的签名脚本,请使用以下命令将计算机上的

执行策略更改为 RemoteSigned:

set-executionpolicy remotesigned

其他参数

Restricted—默认的设置, 不允许任何script运行;AllSigned—只能运行经过数字证书签名的script;RemoteSigned—运行本地的script不需要数字签名,但是运行从网络上下载的script就必须要有数字签名;Unrestricted—允许所有的script运行。

创建自签名证书

创建一个自签名证书,需要用到microsoft的工具,makecert.exe 。这个工具不能单独下载,但是它包含在微软的.NET framework中,如果你的电脑上已经安装了Visual studio 那就方便多了。

开始->所有程序-Microsoft Visual Studio ->Visual Studio Tools->Visual Studio 命令提示()

makecert.exe -pe -r -n "cn=PSCert" -eku 1.3.6.1.5.5.7.3.3 -ss "my"

这里要稍微注意 -eku 参数:1.3.6.1.5.5.7.3.3,不能是其它,否则证书的预期目的属性就不是代码签名了。

上面创建的证书会自动保存在CurrentUser\My 路径下面。可以在Powershell中查看(切换到证书所在路径):

PS E:> ls cert:CurrentUser\My | where {$_.subject -eq "CN=PSCert"}目录: Microsoft.PowerShell.SecurityCertificate::CurrentUser\MyThumbprint Subject---------- -------BA61AF0B8A856422AD9EF86104C8CEDB2583A21A CN=PSCert

把前面的证书保存变量$cert

PS E:> $cert=ls cert:CurrentUser\My | where {$_.subject -eq"CN=PSCert"}

最后我们用Set-AuthenticodeSignature来给我们指定的PowerShell脚本设置数字签名认证:

PS C:\Users\Administrator> Set-AuthenticodeSignature -PSPath "C:\Test.ps1" -Certificate $cert

Directory: C:\

SignerCertificate Status Path

----------------- ------ ----

B88C3F60886BB370E70D4426D0AEE9D342CDValidTest.ps1

最后把生成的证书导出然后导入到需要运行的服务器

导出方式:

在控制台菜单,开始-》运行-》打开certmgr.msc证书控制台

新生成的证书一般在个人下面。

最后把导出的证书导入到服务器的受信任的根证书颁发机构

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。