首先介绍一下项目,基础spring boot,docker部署,使用letsencrypt申请证书。
1 首先,安装一个工具
$ git clone https://github.com/certbot/certbot
$ cd certbot
$ ./certbot–auto —help
2 用这个工具生成证书和秘钥
./certbot-auto certonly -a standalone -d example.com -d www.example.com
3 打开/etc/letsencrypt/live/example.com目录
4 openssl pkcs12 -export -in fullchain.pem -inkey privkey.pem -out keystore.p12 -name tomcat -CAfile chain.pem -caname root
文件 keystore.p12生成在 /etc/letsencrypt/live/example.com目录下
证书申请完毕,开始配置sping boot项目,因为spring boot是运行在docker中的,默认服务器是Tomcat等,
server.port: 443
security.require-ssl=true
server.ssl.key-store:/etc/letsencrypt/live/example.com/keystore.p12
server.ssl.key-store-password: <your-password>
server.ssl.keyStoreType: PKCS12
server.ssl.keyAlias: tomcat
配置完成后重启container,然后重新运行项目
> docker run -it -d -v /etc/letsencrypt/live/example.com/keystore.p12:/etc/letsencrypt/live/example.com/keystore.p12 -p 443:443 springboot/application -Dspring.profiles.active=dev
这个默认有效期是90天,到期要重新验证,可以设置自动更新,可以去官方文档查看。