1. 生成证书
https证书可以在网上申请免费证书 https://freessl.cn/ ,也可以本地生成.本地生成可以使用keytools
和mkcert
,
- keytools是一个Java数据证书的管理工具, 参考: https://www.cnblogs.com/duanxz/p/9155509.html
- mkcert是一个使用go语言编写的生成本地自签证书的小程序,具有跨平台,使用简单,支持多域名,自动信任CA等一系列方便的特性可供本地开发时快速创建https环境使用.
下面介绍一下mkcert的使用:
1. 下载 https://github.com/FiloSottile/mkcert/releases/latest
2. 将CA证书加入本地可信CA, windows系统需要管理员权限,在cmd里面输入
mkcert -install
3. 生成自签证书
mkcert localhost 127.0.0.1 ::1
如果需要自定义域名,比如: www.test.com
或者 *.test.com
也可以
mkcert www.test.com "*.test.com"
生成后会发现多了两个文件: xxx.pem
证书和xxx-key.pem
秘钥
4. 生成java程序可用的p12
证书, 默认密码changeit
mkcert -pkcs12 localhost
2. tomcat配置
前提知识:http的默认端口是80, https的默认端口是443
<Connector port="80" protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="443" />
<Connector port="443" protocol="org.apache.coyote.http11.Http11NioProtocol"
maxThreads="150" SSLEnabled="true">
<SSLHostConfig>
<Certificate certificateKeystoreFile="${catalina.home}/bin/localhost+3.p12" certificateKeystorePassword="changeit" />
</SSLHostConfig>
</Connector>
3. Springboot配置
把生成的p12证书
放在resources根目录
server.port=443
server.ssl.key-store-type= PKCS12
server.ssl.key-store=classpath:localhost+3.p12
server.ssl.key-store-password=changeit
p12证书转jkskeytool -importkeystore -srckeystore xx.p12 -srcstoretype pkcs12 -destkeystore xx.jks
访问https服务: https://localhost
4. 注意事项:
- 安装本地CA证书需要管理员权限
- 443端口被vmware虚拟占用,在
首选项
.共享虚拟机
里面禁用共享
或者更改端口
参考: