我太傻了,删除了 Firefox 中的所有默认 CA 证书。(我使用的是 Ubuntu)。我该如何恢复它们?
答案1
您可以创建一个新的临时配置文件,然后从新配置文件中复制 cert8.db 文件。
要创建新的配置文件,您可能需要使用以下命令启动 Firefox:
Firefox 的 ProfileManager
然后点击“创建配置文件”。然后使用新配置文件启动 Firefox 一次,让它创建配置文件的文件。
之后退出 Firefox,然后将 ~/.mozilla/firefox/[新配置文件目录]/cert8.db 复制到 ~/.mozilla/firefox/[旧配置文件目录]/cert8.db。配置文件目录的名称以配置文件的名称结尾,这样您就可以知道哪个是新的,哪个是旧的。
最后切换到您的旧配置文件(您可能需要再次从 -ProfileManager 选项启动),并且您应该拥有默认的 CA 配置。
答案2
我遇到了类似的问题,因此我编写了一个脚本来仅使用我喜欢或不喜欢但必须使用的页面来重新创建证书,就像谷歌所说的那样:
address=www.google.com
firefox $(openssl s_client -showcerts -connect $address:443 </dev/null 2>/dev/null|openssl x509 -in - -text |grep ".crt" | sed -e 's/.*URI:\(.*\)\n*/\1/')
或者
address=www.google.com
firefox $(openssl s_client -connect $address:443 2>&1 < /dev/null | sed -n '/-----BEGIN/,/-----END/p' | openssl x509 -in - -text | grep ".crt" | sed -e 's/.*URI:\(.*\)\n*/\1/')
并重新加载原始页面。
或者使用更复杂的 bash 脚本:
#!/bin/bash
if [ -n "$1" ]; then
address=$1
else
address=$(whiptail --inputbox "Enter a URL of the page with an unknown issuer (without https://):" 8 78 --title "Add a new certificate into Firefox" 3>&1 1>&2 2>&3)
fi
crt=$(openssl s_client -showcerts -connect $address:443 </dev/null 2>/dev/null|openssl x509 -in - -text |grep ".crt" | sed -e 's/.*URI:\(.*\)\n*/\1/')
echo "Attempt 1: $crt"
if [ -z "$crt" ];then
crt=$(openssl s_client -connect $address:443 2>&1 < /dev/null | sed -n '/-----BEGIN/,/-----END/p' | openssl x509 -in - -text | grep ".crt" | sed -e 's/.*URI:\(.*\)\n*/\1/')
echo "Attempt 2 (from crl): $crt"
fi
if [ -n "$crt" ];then
firefox $crt
exit
else
echo No success in finding of crt file.
fi
主要任务是从 URL 中提取(比如https://www.google.com) 所谓的“授权信息访问”,其中有 crt 文件的确切 URL,可以将其导入 Firefox。这是我发现的最简单的方法。
GUI 方式如何做同样的事情:
- firefox/首选项/隐私和安全/查看证书/证书管理器/服务器/addExeption
- 将 URL 写入位置:https://www.google.com
- 然后点击:获取证书
- 按钮:查看/详细信息/AuthorityInformationAccess/
- Field值中包含证书的URL:
- CA 颁发者:URI:http://pki.goog/gsr2/GTSGIAG3.crt
- OCSP:URI:http://ocsp.pki.goog/GTSGIAG3
- 复制地址crt文件:http://pki.goog/gsr2/GTSGIAG3.crt
- 并在 Firefox 窗口中打开它
- 重新加载原始 URL 我不知道为什么,但有时 Firefox 会导入 crt 文件,有时它只是下载。所以我必须通过这种 GUI 方法导入它。
好吧,脚本速度更快,但是占用了我 8 个小时的时间,所以我希望它能简化你的生活... :-)