最近已经全部迁移到Ubuntu上工作了,公司的证书导入到Firefox上是可以了,但是chrome还不行,研究了一下。原来狗狗这个东西,是没有自己的证书管理工具的,借用nss的。这里记录一下相关的关键点。 在ubuntu上应该有装两个包nss-tools的包和curl的包(不明白curl这样的基础包为啥不是默认装的,估计是ubuntu假设的用户群是比较那个的) mllm © 2004-2010, allblue sudo apt-get install libnss3-tools sudo apt-get install curl Parsed in 0.009 seconds 要增加CA证书,如下操作 mllm © 2004-2010, allblue curl -k -o "cacert-root.crt" "http://www.cacert.org/certs/root.crt" curl -k -o "cacert-class3.crt" "http://www.cacert.org/certs/class3.crt" certutil -d sql:$HOME/.pki/nssdb -A -t TC -n "CAcert.org" -i cacert-root.crt certutil -d sql:$HOME/.pki/nssdb -A -t TC -n "CAcert.org Class 3" -i cacert-class3.crt Parsed in 0.01 seconds 自验证的证书,有两种方法导入 第一种pem文件,如用firefox导出,然后导入 mllm © 2004-2010, allblue certutil -d sql:$HOME/.pki/nssdb -A -t TC -n "A Name" -i a.pem Parsed in 0.009 seconds 第二种,直接用脚本从http流中抓取证书保存 先建立一个如下的脚本 import-cert.sh #!/bin/sh # # usage: import-cert.sh remote.host.name [port] # REMHOST=$1 REMPORT=${2:-443} exec 6>&1 exec > $REMHOST echo | openssl s_client -connect ${REMHOST}:${REMPORT} 2>&1 |sed -ne '/-BEGIN CERTIFICATE-/,/-END CERTIFICATE-/p' certutil -d sql:$HOME/.pki/nssdb -A -t TC -n "$REMHOST" -i $REMHOST exec 1>&6 6>&- Parsed in 0.01 seconds 然后执行脚本就能直接保存一个站点的证书到nss的数据库中 mllm © 2004-2010, allblue import-cert.sh abc.sslserver.com 1234Parsed in 0.008 seconds 查看已导入的证书 mllm © 2004-2010, allblue certutil -L -d sql:$HOME/.pki/nssdb Parsed in 0.008 seconds 删除已存在的一个证书 mllm © 2004-2010, allblue certutil -D -n <the name> -d sql:$HOME/.pki/nssdb Parsed in 0.009 seconds 导入一个证书 mllm © 2004-2010, allblue certutil -d sql:$HOME/.pki/nssdb -A -t TC -n "CA-Name" -i abc.sslserver.com Parsed in 0.009 seconds 导入一个PKCS12类型的个人证书和私钥 mllm © 2004-2010, allblue pk12util -d sql:$HOME/.pki/nssdb -i PrivateKey.pfx Parsed in 0.008 seconds 最后增加选项才能使chrome启动客户端证书验证 mllm © 2004-2010, allblue google-chrome --auto-ssl-client-authParsed in 0.009 seconds |
|||
最新评论
5 周 1 天之前
5 周 1 天之前
25 周 5 小时之前
36 周 5 天之前
37 周 6 天之前
1 年 13 周之前
1 年 17 周之前
1 年 34 周之前
1 年 34 周之前
1 年 37 周之前