https、quic都要使用证书,但是过期后,如何认证或改换环境后,如何新建根证书呢?

1.工具

系统要安装此工具,Debian/Ubuntu: sudo apt-get install libnss3-tools,其他系统如Fedora: su -c "yum install nss-tools"

2.查看已存在的证书

certutil -d sql:$HOME/.pki/nssdb -L

3.生成证书

用命令生成证书后,会产生很多文件。其中要把2048-sha256-root.pem,转成crt,再复制到指定目录中。

3.1如果证书不是DER格式的话,请先用下面的命令对其进行转化

openssl x509 -outform der -in charles.pem -out charles.crt

3.2将要导入的证书拷贝到一个特定目录下

sudo cp charles.crt /usr/local/share/ca-certificates/charles.crt

3.3更新

sudo update-ca-certificates

4.新增证书

certutil -d sql:$HOME/.pki/nssdb -A -t "C,," -n <certificate nickname> -i <certificate filename>

新增时,需要输入密码,若密码不正确,只能新增成临时证书。例如:certutil -d sql:$HOME/.pki/nssdb -A -t "C,," -n GoAgent -i ~/programs/goagent/local/CA.crt

5.删除证书

certutil -d sql:$HOME/.pki/nssdb -D -n <certificate nickname>

6.初始化环境

新增证书时,忘记密码或数据库损坏,报错:certutil: function failed: security library: bad database.要初始化环境,步骤如下:

mv ~/.pki/nssdb ~/.pki/nssdb.corrupted

mkdir ~/.pki/nssdb

chmod 700 ~/.pki/nssdb

certutil -d sql:$HOME/.pki/nssdb -N

Enter a password which will be used to encrypt your keys.要记住此密码