在firefox中升级证书的几种方式

作者 : 开心源码 本文共2177个字,预计阅读时间需要6分钟 发布时间: 2022-05-11 共84人阅读

本文是如何在浏览器中升级证书的第二部分,第一部分内容请阅读《如何让chrome信任自签名证书》,主要以一个使用户的角度解释如何在线获取自签名证书,并将该证书加入到 chrome 中;而对于开发者来说,更希望生成自签名证书,并部署到网站中,本文就是详情如何生成自签名证书,并演示多种将证书增加到 firefox 中的方法。

用 firefox 功可以菜单升级证书

firefox 功可以菜单可以够直接增加证书,原理其实就是通过操作界面升级 cert9.db 文件。

打开【选项】->【隐私和安全】->【查看证书】菜单,如下图:

[图片上传失败…(image-ee620e-1530483045896)]

增加例外(浏览器会在线获取证书)后,浏览器(实际是 cert9.db )就增加了相应的证书,如下图:

[图片上传失败…(image-d94a25-1530483045897)]

需要注意的是,尽管浏览器信任了该证书,让你可以够正常访问部署自签名证书的网站,但因为是一个自签名证书,浏览器依然会提示你该网站可可以存在安全风险,警告形式如下图:

[图片上传失败…(image-44861a-1530483045897)]

用 certutil 升级证书库

首先详情如何用 openssl 工具生成自签名证书(cerutil 工具也能),运行如下命令生成 csr 文件:

$ openssl req -new -sha256 -newkey rsa:2048 -nodes -subj '/CN=www.test.com/O=Test, Inc./C=CN/ST=Beijing/L=Haidian'  -keyout example_key.pem -out example_csr.pem

其中 example_key.pem 表示私钥文件,example_csr.pem 文件将来要生成证书文件,公钥是一个 2048 比特长度的 RSA 公钥。

而后生成一个证书扩展文件,在本例中是 SAN 扩展,运行如下命令:

$ echo "subjectAltName=DNS:www.test.com > certext.ext 

最后生成证书,运行如下命令:

$ openssl x509 -req -days 365 -in example_csr.pem -signkey example_key.pem -out example_cert.pem -extfile certext.ext 

接下来用 certutil 工具给 cert9.db 增加证书,在 NSS 中有三种证书,分别是 CA 根证书、中间证书、自签名证书。对应的操作命令如下:

# CA 根证书 $ certutil -d sql:$HOME/.pki/nssdb -A -t "C,," -n <certname> -i <certfile> # 中间证书 $ certutil -d sql:$HOME/.pki/nssdb -A -t ",," -n <certname> -i <certfile> # 自签名证书 $ certutil -d sql:$HOME/.pki/nssdb -A -t "P,," -n <certname> -i <certfile> 

区别就在于 -t 对应的参数值,为什么要使用逗号分割三个区域呢?三个区域分别代表该证书可使用于 https 证书验证、email 证书验证、数字签名验证。

在本例中,想给 cert9.db 增加证书,运行如下命令:

$ certutil -A -n ywdblog@outlook.com -t "p,p,p" -i example_cert.pem  -d sql:$HOME/.pki/nssdb

升级后,能用 certutil 工具验证能否增加成功,而后重新启动浏览器,看看效果。

firefox 用 windows 系统根证书库

在 windows 系统中,firefox 也能不用 nss 根证书库,能用 windows 系统根证书库。

从 firefox 49 版本开始,能启使用 security.enterprise_roots.enabled 选项(默认是关闭的),firefox 即可以用 windows 系统根证书库,具体操作如下。

在 firefox 地址栏中输入“about:config”,而后修改 security.enterprise_roots.enabled,具体如下图:

config

但是需要注意的是,并不是开启该选项后就生效,firefox 49 以后的版本,会读取 windows CERT_SYSTEM_STORE_LOCAL_MACHINE 下的证书;firefox 52 以后的版本,还会读取 CERT_SYSTEM_STORE_LOCAL_MACHINE_GROUP_POLICY 和 CERT_SYSTEM_STORE_LOCAL_MACHINE_ENTERPRISE 下的证书。

因为在 windows 下,使用户的根证书都保存在 CERT_SYSTEM_STORE_CURRENT_USER 目录下,所以需要将该目录下的证书都拷贝到 CERT_SYSTEM_STORE_LOCAL_MACHINE 目录下,firefox 才会真正用 windows 系统根证书库,这是需要注意的一点,至于采使用这个策略的起因,比较让人困惑。

我最近写了一本书《深入浅出HTTPS:从原理到实战》,欢迎去各大电商购买,也欢迎关注我的公众号(yudadanwx),理解我最新的博文和本书。

qrcode_for_gh_27a6d90762d3_258.jpg

说明
1. 本站所有资源来源于用户上传和网络,如有侵权请邮件联系站长!
2. 分享目的仅供大家学习和交流,您必须在下载后24小时内删除!
3. 不得使用于非法商业用途,不得违反国家法律。否则后果自负!
4. 本站提供的源码、模板、插件等等其他资源,都不包含技术服务请大家谅解!
5. 如有链接无法下载、失效或广告,请联系管理员处理!
6. 本站资源售价只是摆设,本站源码仅提供给会员学习使用!
7. 如遇到加密压缩包,请使用360解压,如遇到无法解压的请联系管理员
开心源码网 » 在firefox中升级证书的几种方式

发表回复