在没有管理员的情况下将Mozilla根证书添加到Windows

在没有管理员的情况下将Mozilla根证书添加到Windows,windows,powershell,certificate,pem,Windows,Powershell,Certificate,Pem,我想在没有管理员权限的情况下添加到Windows 7 是否有直接的方法将根证书添加到当前用户的证书存储中?我更喜欢使用Windows的本机工具,而不依赖于我必须下载的东西 一些看起来很有希望的资源 -Mozilla根证书转换为PEM并由cURL托管。这里有一个直接链接到 -有关如何获取根证书的概述 -解释如何自己从Mozilla证书生成PEM文件 -一个关于如何安装证书的精彩概述,它似乎比应该的更复杂 我结束了编写powershell脚本的过程 在运行此代码之前验证它。它正在将中的所有证书颁发

我想在没有管理员权限的情况下添加到Windows 7

是否有直接的方法将根证书添加到当前用户的证书存储中?我更喜欢使用Windows的本机工具,而不依赖于我必须下载的东西

一些看起来很有希望的资源

  • -Mozilla根证书转换为PEM并由cURL托管。这里有一个直接链接到
  • -有关如何获取根证书的概述
  • -解释如何自己从Mozilla证书生成PEM文件
  • -一个关于如何安装证书的精彩概述,它似乎比应该的更复杂

我结束了编写powershell脚本的过程

在运行此代码之前验证它。它正在将中的所有证书颁发机构添加到当前用户的受信任的根证书存储中

要在单个命令中运行,请将以下内容粘贴到命令提示符中:

@powershell -NoProfile -ExecutionPolicy unrestricted -Command "iex ((new-object net.webclient).DownloadString('https://raw.github.com/jschaf/install-mozilla-certs/master/install-mozilla-cert.ps1'))"
以下是Github链接:

资料来源:

# Variables
$url = "http://curl.haxx.se/ca/cacert.pem"

# Download the certificates
Write-Host "Downloading Mozilla certificates from $url."
$downloader = New-Object System.Net.WebClient
$rawcerts = $downloader.DownloadString("http://curl.haxx.se/ca/cacert.pem")

# Remove headers and begin/end delimiters and convert into a byte
# stream
$header = "-----BEGIN CERTIFICATE-----`n"
$footer = "`n-----END CERTIFICATE-----"
$match_string = "(?s)$header(.*?)$footer"
$certs_matches = Select-String $match_string -input $rawcerts -AllMatches
$certs_base64 = $certs_matches.matches | %{ $_.Groups[1].Value }
$certs_bytes = $certs_base64 | %{ ,[System.Text.Encoding]::UTF8.GetBytes($_) }

# Install the certificates
$user_root_cert_store = Get-Item Cert:\CurrentUser\Root
$user_root_cert_store.Open("ReadWrite")
foreach ($c in $certs_bytes) {
    $cert = new-object System.Security.Cryptography.X509Certificates.X509Certificate2(,$c)
    $user_root_cert_store.Add($cert)
}
$user_root_cert_store.Close()
Write-Host "Finished installing all certificates."
一件恼人的事情是,Windows会为每个证书提示yes/no。因为它安装了158个证书,所以很快就会过时。如果有人知道如何阻止确认,请告诉我或放弃请求。

Per,如果您不是管理员,将证书安装到本地计算机的存储中,则无法绕过确认提示。