Windows通过代码更新根证书

2022-06-27 02:40:04 浏览数 (1)

结合没有公网的cvm通过IE访问同地域cos https链接一直转圈和另一个没有公网的cvm通过内网访问同地域cos的报错tls handshake timeout的case来看,https证书问题在windows里还是挺重要的。

我写了一段代码来更新根证书(先清空、再通过certutil -generateSSTFromWU联网更新拉取400多个根证书)

#查看根证书

代码语言:javascript复制
dir cert:\CurrentUser
dir cert:\LocalMachine
Get-ChildItem -Path Cert:CurrentUser
Get-ChildItem -Path Cert:LocalMachine

(dir cert:\CurrentUserRoot).Count

(dir cert:\LocalMachineRoot).Count

(Get-ChildItem -Path Cert:CurrentUserRoot).Count

(Get-ChildItem -Path Cert:LocalMachineRoot).Count

$Certs = get-childitem Cert:LocalMachineRoot

$Certs | %{Remove-Item -path $_.PSPath -recurse -Force} #适用≥2012R2

#$Certs | Remove-Item

#适用2008R2

#Get-ChildItem Cert:LocalMachineRoot | ForEach-Object {

# $store = Get-Item $_.PSParentPath

# $store.Open('ReadWrite')

# $store.Remove($_)

# $store.Close()

#}

while( (Test-Path C:WURoots.sst) -eq $false ){

certutil -generateSSTFromWU C:WURoots.sst 2>$null 1>$null

}

wget http://windowscq-1251783334.cos.ap-chongqing.myzijiebao.com/updroots.exe -outfile c:windowsupdroots.exe

#certutil -urlcache -split -f http://windowscq-1251783334.cos.ap-chongqing.myzijiebao.com/updroots.exe (这句适用2008R2和2012R2,上句适用win8~win11、2012R2~2022)

c:windowsupdroots.exe

updroots.exe c:WURoots.sst

certmgr.msc

del C:WURoots.sst 2>$null

0 人点赞