一、CA证书是什么?
1、 什么是CA?
CA全称为Certificate Authority,可以翻译为证书颁发机构。主要功能为:证书发放、证书更新、证书撤销和证书验证。
2、 什么是证书?
证书指数字证书。 数字证书又称为数字标识。其作用是对计算机网络交流中的信息和数据进行加密和解密保证信息和数据的机密性、完整性、可用性和不可抵赖性。
3、 证书生成过程
数字证书的签发过程: 1、 撰写证书的元数据:包括签发人、地址、签发时间、有效期等,还有证书持有者的基本信息,比如DNS、所有者公钥等信息。 2、 使用通用的Hash算法对证书元数据计算生成数字摘要 3、 使用发行人的密钥对该数字摘要进行加密,生成一个加密的数字摘要,也就是发行人的数字签名。(发行人指CA)
4、 将数字签名房价到数字证书上,变成一个签过名的数字证书
数字证书的验证过程: 1、 证书使用者通过某种途径(如浏览器访问)获取到该数字证书,解压后分别获得证书元数据和数字签名。 2、 使用同样的Hash算法计算证书元数据的数字摘要 3、 使用发行人的公钥对数字签名进行加密,得到解密后的数字摘要 4、 对比两次的数字摘要,如果相同,则说明这个数字证书是被CA验证过的合法证书。
二、Java生成证书
1.进入JDK的bin目录下,然后输出CMD进入控制台
2.生成keystore
命令:
.\keytool.exe -genkeypair -alias dongbao-alias -keypass 123456 -keyalg RSA -validity 365 -keystore e:\cer\dongbao-alias.keystore -storepass 123456 -ext san=dns:localhost 您的名字与姓氏是什么? [Unknown]: zhong 您的组织单位名称是什么? [Unknown]: jy 您的组织名称是什么? [Unknown]: jy 您所在的城市或区域名称是什么? [Unknown]: sz 您所在的省/市/自治区名称是什么? [Unknown]: sz 该单位的双字母国家/地区代码是什么? [Unknown]: cn CN=chao, OU=msb, O=msb, L=msb, ST=cn, C=cn是否正确? [否]: 是
生成之后如下图:
2.生成证书
命令:
.\keytool.exe -exportcert -alias dongbao-alias -keystore E:\cer\dongbao-alias.keystore -file e:\cer\my.cer
如下图就是证书:
三、无证书测试
1、随便写一个demo测试: 2、HTTP访问 3、HTTPS访问,可以看到访问不了
四、配置证书
安装证书到浏览器:
到此安装完成!
配置yml:
ssl: key-store: classpath:dongbao-alias.keystore key-store-type: JKS key-store-password: 123456 key-password: 123456 key-alias: dongbao-alias
再次访问demo,用HTTPS访问
|