一、生成自签名安全证书
- 使用jdk的keytool命令生成自签名的证书:
打开命令行窗口,输入以下命令:
keytool -genkey -alias xrw -storetype PKCS12 -keyalg RSA -keysize 2048 -keystore keystore -validity 3650 -ext san=ip:192.168.7.42,dns:l
//多ip证书这样生成
keytool -genkey -alias su -storetype PKCS12 -keyalg RSA -keysize 2048 -keystore keystore -validity 3650 -ext san=ip:192.168.1.160,ip:192.168.7.30,dns:www
其中:
alias:证书的别名
storetype:编码方式
keystore:生成的证书的文件名
validity:证书有效期(单位:天)
ext:证书的ip等信息
注意:系统询问“您的名字与姓氏是什么?”时,填写本机的ip或者域名
- 生成的证书所在位置:
生成的证书所在位置为当前用户目录下。例如,C:\Users\admin
二、将生成的证书复制到项目根目录下
将生成的证书复制到项目根目录下
三、在配置文件中修改配置
在application.yml文件中,添加配置:
#你生成的证书名字(ssl证书)
server.ssl.key-store: test.keystore
#密钥库密码
server.ssl.key-store-password: 123456
server.ssl.keyStoreType: PKCS12
server.ssl.keyAlias: xrw
如果配置文件是application.properties,按照properties文件的语法添加上述配置
四、配置tomcat的配置文件server.xml
如果是用tomcat启动war包,server的配置就会失效,这个时候需要配置一下tomcat。找到tomcat的配置文件server.xml,打开,找到如下所示的内容,默认是注释掉的,我们打开注释。我们要修改的是keystoreFile 即keystore文件存放的路径。还有keystorePass,之前创建秘钥证书时输入的密码。
<!-- Define an SSL Coyote HTTP/1.1 Connector on port 8443 -->
<Connector
protocol="org.apache.coyote.http11.Http11NioProtocol"
port="8443" maxThreads="200"
scheme="https" secure="true" SSLEnabled="true"
keystoreFile="/usr/local/tomcat/conf/keystore" keystorePass="changeit"
clientAuth="false" sslProtocol="TLS"/>
生成客户端证书:
keytool -export -alias xrw -keystore test.keystore -storetype PKCS12 -rfc -file client.cer
将客户端证书添加到jdk信任列表:
keytool -import -file C:\Users\A\Desktop\test.cer -keystore "D:\Program Files\Java\jdk1.8.0_202\jre\lib\security\cacerts" -alias xrw