openssl verify -CAfile ca.cer server.crt
现在很多网站和服务都使用了HTTPS进行链路加密、防止信息在传输中间节点被窃听和篡改。HTTPS的启用都需要一个CA证书,以保证加密过程是可信的。
我们可以申请和获得一个CA机构颁发的证书,在软件调试过程中或者机构内部网可以创建自签名的CA证书,在【配置Harbor私有Docker镜像服务使用HTTPS】有关于自签名CA证书制作和使用的描述。
所谓“自签名”就是把自己当成一个CA证书颁发机构,只不过未得到公共证书机构的认可。这样的CA证书在部分操作系统下,可以直接配置在应用系统里使用,在浏览器里往往会进行提示,如果加入“例外”白名单中,就可以继续使用。
但在有的操作系统和一些版本中,需要将根证书配置为系统级的证书,才允许继续使用,系统就像个看大门的,需得首先过了这一关才行。尤其是因为出现证书机构颁发虚假证书问题,最近很多操作系统都加强了安全措施,对证书都加强了验证,必须进行ca证书配置才能继续访问了。
Mac OS X
添加证书:
sudo security add-trusted-cert -d -r trustRoot -k /Library/Keychains/System.keychain ~/new-root-certificate.crt
移除证书:
sudo security delete-certificate -c "<name of existing certificate>"
Windows
添加证书:
certutil -addstore -f "ROOT" new-root-certificate.crt
移除证书:
certutil -delstore "ROOT" serial-number-hex
Linux (Ubuntu, Debian)
添加证书:
-
复制 CA 文件到目录: /usr/local/share/ca-certificates/
-
执行:
sudo cp foo.crt /usr/local/share/ca-certificates/foo.crt
-
更新 CA 证书库:
sudo update-ca-certificates
移除证书:
-
Remove your CA.
-
Update the CA store:
sudo update-ca-certificates --fresh
Restart Kerio Connect to reload the certificates in the 32-bit versions or Debian 7.
Linux (CentOs 6)
添加证书:
-
安装 ca-certificates package:
yum install ca-certificates
-
启用dynamic CA configuration feature:
update-ca-trust force-enable
-
Add it as a new file to /etc/pki/ca-trust/source/anchors/:
cp foo.crt /etc/pki/ca-trust/source/anchors/
-
执行:
update-ca-trust extract
Restart Kerio Connect to reload the certificates in the 32-bit version.
Linux (CentOs 5)
添加证书:
Append your trusted certificate to file /etc/pki/tls/certs/ca-bundle.crt
cat foo.crt >> /etc/pki/tls/certs/ca-bundle.crt