将本地用户SSL证书(.crt)添加到Windows PC上的所有Java存储

shyt4zoc  于 2023-02-02  发布在  Java
关注(0)|答案(1)|浏览(213)

我编写了下面的windows power shell脚本,以便将crt SSL证书添加到所有java cacert存储中

$certs = @(Get-Childitem -Path "C:\Program files" -Include *cacerts* -Exclude *.pem -File -Recurse -ErrorAction SilentlyContinue);$keytool = Get-Childitem -Path "C:\Program files" -filter keytool.exe -Recurse -ErrorAction SilentlyContinue | Select -First 1; foreach ( $cert in $certs ){& "$keytool" -import -trustcacerts -alias mycert-ca$(date -format dMyyhm) -file C:\Path\to\my-crt.crt -keystore $cert -storepass changeit -noprompt}

问题是,当我尝试运行它对任何东西比程序文件的搜索需要很长的时间。当我在命令提示符搜索与以下命令dir c:\ /s /b | findstr -i cacerts我得到结果为整个c驱动器在一分钟内。
是否有与ps等效命令?

db2dz4w8

db2dz4w81#

我在这里张贴我的脚本更新后,我得到的意见,我的问题,我检查了它在我的个人电脑上,它的工作完美。

$certs = @(Get-Childitem –Path "C:\Program files", "C:\Program Files (x86)" -Filter cacerts -Recurse -ErrorAction SilentlyContinue);$keytool = Get-Childitem -Path "C:\Program files", "C:\Program Files (x86)" -Filter keytool.exe -Recurse -ErrorAction SilentlyContinue | Select -First 1; foreach ( $cert in $certs ){& "$keytool" -import -trustcacerts -alias myCert$(date -format dMyyhm) -file C:\Path\to\CA\myCertificate.crt -keystore $cert -storepass changeit -noprompt}

确保将-file C:\Path\to\CA\myCertificate.crt更改为你的证书路径.并且将-alias myCert$(date -format dMyyhm)更改为你选择的名称.
$(date -format dMyyhm)在那里的情况下,你想有一个选项,以更新证书,而不删除旧的,如果不是这种情况,你可以删除这一部分。
在随附的版本中,我只在两个程序文件目录中搜索,因为据我所知,所有包含Java的文件都位于这两个目录中,但您可以将-path标志更改为指向“C:\”或甚至“\”,对于我来说,在1 TB的整个驱动器上搜索需要2分钟。

相关问题