自建证书又被称为自签名证书,其实内行的人做起来是很简单的,制作原理也不是特别复杂,就是网站与浏览器之间的一个握手过程。
首先,浏览器(官方名客户端)向服务端发起证书请求,服务端收到请求后,要提供一张数字证书给客户端,这张数字证书是要通过客户端验证通过的。然后,客户端要验证里面的详细信息有没有问题,如颁发机构、过期时间等等。
如果有问题的话,就会有警告框出现提示证书存在问题。如果没有问题的话,就会自动生成一个随机值。客户端就可以用证书对随机值加密了,加密之后再传送给服务端。服务端得到这个加密后的随机值,就可以和客户端在以后的通信联系时来进行加密解密。这样HTTPS自签名证书也就是HTTPS自建证书就完成制作了。
方法:确认证书文件及证书路径。确认.jks格式的证书文件,并放到固定的目录下,不要误移动或删除。例:证书文件为:zzidc.com.jks,证书路径为:D:/keystore/zzidc.com.jks.
配置Tomcat中server.xml文件。
如果本地测试,请做本地解析访问:打开C:\Windows\System32\Drivers\etc\hosts文件,用文本编辑器修改,把证书绑定的域名解析到本地ip。
启动tomcat,访问https://+证书绑定的域名可查看绑定成功之后的效果图。
创建根证书密钥文件(自己做CA)root.key:
创建根证书的申请文件root.csr:
创建一个自当前日期起为期十年的根证书root.crt:
创建服务器证书密钥server.key:
创建服务器证书的申请文件server.csr
创建自当前日期起有效期为期两年的服务器证书server.crt
创建客户端证书密钥文件client.key
创建客户端证书的申请文件client.csr
创建一个自当前日期起有效期为两年的客户端证书client.crt
将客户端证书文件client.crt和客户端证书密钥文件client.key合并成客户端证书安装包client.pfx
保存生成的文件备用,其中server.crt和server.key是配置单向SSL时需要使用的证书文件,client.crt是配置双向SSL时需要使用的证书文件,client.pfx是配置双向SSL时需要客户端安装的证书文件 .crt文件和.key可以合到一个文件里面,把2个文件合成了一个.pem文件(直接拷贝过去就行了)
x509证书一般会用到三类文,key,csr,crt。
Key是私用密钥openssl格,通常是rsa算法。
Csr是证书请求文件,用于申请证书。在制作csr文件的时,必须使用自己的私钥来签署申,还可以设定一个密钥。
crt是CA认证后的证书文,(windows下面的,其实是crt),签署人用自己的key给你签署的凭证。
1.key的生成
opensslgenrsa -des3 -out server.key 2048
这样是生成rsa私钥,des3算法,openssl格式,2048位强度。server.key是密钥文件名。为了生成这样的密钥,需要一个至少四位的密码。可以通过以下方法生成没有密码的key:
opensslrsa -in server.key -out server.key
server.key就是没有密码的版本了。
2.生成CA的crt
opensslreq -new -x509 -key server.key -out ca.crt -days3650
生成的ca.crt文件是用来签署下面的server.csr文件。
3.csr的生成方法
opensslreq -new -key server.key -outserver.csr
需要依次输入国家,地区,组织,email。最重要的是有一个common name,可以写你的名字或者域名。如果为了https申请,这个必须和域名吻合,否则会引发浏览器警报。生成的csr文件交给CA签名后形成服务端自己的证书。
4.crt生成方法
CSR文件必须有CA的签名才可形成证书,可将此文件发送到verisign等地方由它验证,要交一大笔钱,何不自己做CA呢。
opensslx509 -req -days 3650 -in server.csr -CA ca.crt -CAkey server.key-CAcreateserial -out server.crt
输入key的密钥后,完成证书生成。-CA选项指明用于被签名的csr证书,-CAkey选项指明用于签名的密钥,-CAserial指明序列号文件,而-CAcreateserial指明文件不存在时自动生成。
最后生成了私用密钥:server.key和自己认证的SSL证书:server.crt
证书合并:
catserver.key server.crt >server.pem
欢迎分享,转载请注明来源:夏雨云
评论列表(0条)