互联网上面的数字证书产品现在越来越多,根据用途证书级别也分为三类:服务器SSL证书、客户端证书(PDF、EMAIL、身份认证证书)、代码签名证书等。通过国际WebTrust认证的CA可以签发受浏览器和操作系统信任数字证书产品。当然是要通过付费才可以获得;如果是企业内部使用,就没有必要花这个冤枉钱了,而且安全可控,今天给大家展示建立一套自己的自建CA。
通过这个地址来下载windows版的OpenSSL,linux下面就不再多说,比这个简单。下载地址:https://slproweb.com/products/Win32OpenSSL.html
使用命令生产一个4096位的根root证书:
openssl genrsa -des3 -out root.key 4096
生成证书请求文件csr:
openssl req -new -key root.key -out root.csr
生成一个30年的根证书root.crt,其中秘钥用法我们已经写在了OpenSSL.cnf文件里面:
openssl x509 -req -days 10950 -sha256 -signkey root.key -in root.csr -out root.crt -extensions some_ext -extfile openssl.cnf
制作中级证书csr请求文件:
openssl req -new -sha256 -key inermediate.key -out inermediate.csr
使用上面生成的根root证书来签发中级inermediate证书,命令:
openssl ca -days 7300 -in inermediate.csr -md sha256 -out inermediate.crt -cert root.crt -keyfile root.key -extensions some_ext -extfile openssl.cnf
制作csr请求文件:
openssl req -new -sha256 -key my.key -out my.csr
用上面生成的中级证书签发我们自己的证书:
openssl ca -days 365 -in my.csr -md sha256 -out my.crt -cert inermediate.crt -keyfile inermediate.key -extensions some_ext -extfile openssl.cnf
备注:openssl.cnf文件里面定义几个主要参数:秘钥用法、秘钥扩展型用法、证书备用名称和是否支持签发下级证书等,这个要在之前配置好。