1.原理
数字证书在用户公钥后附加了用户信息及CA的签名。公钥是密钥对的一部分,另一部分是私钥。公钥公之于众,谁都可以使用。私钥只有自己知道。由公钥加密的信息只能由与之相对应的私钥解密。为确保只有某个人才能阅读自己的信件,发送者要用收件人的公钥加密信件;收件人便可用自己的私钥解密信件。同样,为证实发件人的身份,发送者要用自己的私钥对信件进行签名;收件人可使用发送者的公钥对签名进行验证,以确认发送者的身份。
在线交易中可使用数字证书验证对方身份。用数字证书加密信息,可以确保只有接收者才能解密、阅读原文,信息在传递过程中的保密性和完整性。有了数字证书网上安全才得以实现,电子邮件、在线交易和信用卡购物的安全才能得到保证。
2.获取证书
一般有两种方式:
1)使用jdk工具keytool生成自签名证书
// 使用JDK工具keytool生成自签名证书(秘钥库)
keytool -genkey -alias tomcat -keyalg RSA -keystore ./server.keystore
2)向权威机构购买由该机构签名认证的证书(CA证书)
区别是,前者无法被各大浏览器认可(一般浏览器地址栏会显示“不安全”的字样),后者则能够被浏览器识别,有的甚至直接能够解析出连接地址名称。当然后者也是要money的~~,不过可以在 阿里云申请免费的个人证书 。
3.将证书文件拷贝到springboot工程根目录下(和pom.xml同级目录下)
4.在yml配置文件中添加ssl配置
server:
port: 8095
ssl:
##秘钥库文件名称,即上面生成的自签名证书
key-store: dwws.xxxxxxxx.cn.pfx
## 生成秘钥库文件的密码
key-store-password: zbxxxx93
## 秘钥库类型(JKS为jdk的keytool工具默认生成的秘钥库类型)
key-store-type: PSXXXXX23
## 秘钥别名
# key-alias: tomcat