生成并配置https本地证书


1. 生成证书

https证书可以在网上申请免费证书 https://freessl.cn/ ,也可以本地生成.本地生成可以使用keytoolsmkcert,

  • keytools是一个Java数据证书的管理工具, 参考:
  • 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




	
		
	

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证书转jks
keytool -importkeystore -srckeystore xx.p12 -srcstoretype pkcs12 -destkeystore xx.jks

访问https服务: https://localhost

4. 注意事项:

  1. 安装本地CA证书需要管理员权限
  2. 443端口被vmware虚拟占用,在首选项.共享虚拟机里面禁用共享或者更改端口

参考:

  • https://www.jianshu.com/p/7cb5c2cffaaa
  • https://www.pianshen.com/article/70772056918/
  • https://blog.csdn.net/wudinaniya/article/details/81200309
  • https://blog.csdn.net/Incredible1yu/article/details/109113072
  • https://blog.csdn.net/u011137664/article/details/81909192