如何设置 letsencrypt SSL 证书并在 Spring Boot 应用程序中使用它?
我是保护服务器的新手,所以我对此知之甚少,但我需要让我在数字海洋水滴上运行的Spring Boot应用程序使用HTTPS。
我的想法是注册一个letsencrypt证书,然后告诉Spring使用它。
但是,我不知道该怎么做。
谢谢。
我是保护服务器的新手,所以我对此知之甚少,但我需要让我在数字海洋水滴上运行的Spring Boot应用程序使用HTTPS。
我的想法是注册一个letsencrypt证书,然后告诉Spring使用它。
但是,我不知道该怎么做。
谢谢。
我写了2篇关于Let's Encrypt和Spring Boot的博客文章。
简而言之,步骤如下:
拉取 Let's Encrypt 客户端 (certbot)。
为您的域生成证书(例如 example.com)
./certbot-auto certonly -a standalone -d example.com -d www.example.com
内容在 中生成。Spring Boot 需要 PKCS#12 格式的文件。这意味着您必须将密钥转换为PKCS#12密钥库(例如,使用OpenSSL)。如下:/etc/letsencrypt/live/example.com
/etc/letsencrypt/live/example.com
`openssl pkcs12 -export -in fullchain.pem -inkey privkey.pem -out keystore.p12 -name tomcat -CAfile chain.pem -caname root`
带有 PKCS12 的文件 keystore.p12 现在已在 中生成。/etc/letsencrypt/live/example.com
是时候配置您的Spring Boot应用程序了。打开 application.properties 文件,并将以下属性放在其中:
server.port=8443
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
阅读我的博客文章,了解更多详细信息和备注。
步骤 1:从 git 下载证书机器人
您需要在服务器上获取您的域地址所指向的 Let's Encrypt 的源代码。此步骤可能需要几分钟时间。
$ git clone https://github.com/certbot/certbot
$ cd certbot
$ ./certbot-auto --help
备注:Python 2.7.8(或更高版本)应事先安装。
第二步:生成证书和私钥
通过在终端中执行以下命令,Let's Encrypt会为您生成证书和私钥。
$ ./certbot-auto certonly -a standalone \
-d example.com -d example.com
备注:密钥生成于 /etc/letsencrypt/live/example.com 目录
步骤3:从PEM文件生成PKCS12文件
要将PEM文件转换为PKCS12版本:转到/etc/letsencrypt/live/example.com终端中使用OpenSSL将密钥转换为PKCS12,如下所示。
$ openssl pkcs12 -export -in fullchain.pem \
-inkey privkey.pem \ -out keystore.p12 \ -name tomcat \ -CAfile chain.pem \ -caname root
输入导出密码:
验证 - 输入导出密码:
(注意:- 一次写入一行并按回车键)
步骤4:配置弹簧启动应用程序
打开“application.properties”,将此配置放在那里。
server.port=8443 security.require-ssl=true
server.ssl.key-store=/etc/letsencrypt/live/example.com/keystore.p12
server.ssl.key-store-password= password
server.ssl.keyStoreType= PKCS12
server.ssl.keyAlias= tomcat