由于国密算法没有得到国外的认可,所以 Chromium、Firefox 等浏览器均不支持国密算法。即使我们修改了 Chromium 的源码,增加了国密算法的支持,但还不能在浏览器中正常使用。因为这涉及到证书的信任问题,国密证书都是国内厂商签发的,国密根证书并没有集成到系统和浏览器中。这样在访问国密网站时,浏览器会提示证书不受信任。
因此,我们需要一种方法,在安装浏览器时,将国密根证书加入到 Chromium 的授信证书库中。
Chromium 在 Linux 上使用 NSS 共享数据库(通常在 ~/.pki/nssdb
)来存储用户证书和信任根证书。默认启动时,Chromium 通过 NSS_InitReadWrite("sql:$HOME/.pki/nssdb")
初始化 NSS 并打开用户的持久数据库;之后还会加载内置根证书模块 libnssckbi.so
。
一种解决思路是将根证书添加到 ~/.pki/nssdb
中,但在 deb 软件包安装时,使用的是 root 用户,需要比较麻烦的方法获知当前用户,然后写入到当前用户的 $HO