我是安全服务器的新手,所以我对此并不太了解,但我需要让我在Spring Ocean Droplet上运行的Spring Boot应用程序使用HTTPS。
我的想法是注册一个letsencrypt证书然后告诉Spring使用它。
但是,我不知道该怎么做。
感谢。
答案 0 :(得分:49)
我写了两篇关于Let's Encrypt和 Spring Boot 的博文。
简而言之,步骤如下:
为您的域生成证书(例如example.com)
./certbot-auto certonly -a standalone -d example.com -d www.example.com
事件在/etc/letsencrypt/live/example.com
中生成。 Spring Boot需要PKCS#12格式的文件。这意味着您必须将密钥转换为PKCS#12密钥库(例如,使用OpenSSL)。如下:
/etc/letsencrypt/live/example.com
目录。openssl pkcs12 -export -in fullchain.pem -inkey privkey.pem -out keystore.p12 -name tomcat -CAfile chain.pem -caname root
现在,/etc/letsencrypt/live/example.com
生成了带有PKCS12的文件 keystore.p12 。
是时候配置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
请阅读我的blog post以获取更多详情和评论。
答案 1 :(得分:9)
第1步:从git下载certbot
您需要在您的域名所指向的服务器上获取Let's Encrypt的源代码。此步骤可能需要几分钟。
$ git clone https://github.com/certbot/certbot
$ cd certbot
$ ./certbot-auto --help
备注:事先应安装Python 2.7.8(或更高版本)。
第2步:生成证书和私钥
通过在终端中执行以下命令,让我们的加密为您生成证书和私钥。
$ ./certbot-auto certonly -a standalone \
public function inventory($id) { ....
备注:密钥在/etc/letsencrypt/live/example.com目录中生成
第3步:从PEM文件生成PKCS12文件
要将PEM文件转换为PKCS12版本: 转到/etc/letsencrypt/live/example.com 使用终端中的OpenSSL将密钥转换为PKCS12,如下所示。
$ openssl pkcs12 -export -in fullchain.pem \
-d example.com -d example.com
输入导出密码:
验证 - 输入导出密码:
(注意: - 一次写一行并按回车键)
步骤4:配置Spring Boot应用程序
打开'application.properties' 把这个配置放在那里。
server.port = 8443 security.require-ssl = true
server.ssl.key店内=的/ etc / letsencrypt /活/ example.com /keystore.p12
server.ssl.key-store-password = 密码
server.ssl.keyStoreType = PKCS12
server.ssl.keyAlias = tomcat
答案 2 :(得分:4)
另一种选择是使用Spring Boot Starter ACME:
https://github.com/creactiviti/spring-boot-starter-acme
ACME(自动证书管理环境)它是LetsEncrypt用于自动颁发证书的协议。
答案 3 :(得分:0)
keytool
命令将其添加到密钥库中该文件应如下所示:
server.port = 8443
server.ssl.key-store = classpath:sample.jks
server.ssl.key-store-password = secret
server.ssl.key-password = password
答案 4 :(得分:0)
对于Spring Boot Webflux,属性的配置已更改
server.port=443
server.ssl.enabled=true//the changed line
server.ssl.keyAlias=netty
server.ssl.key-store=path
server.ssl.key-store-password=password
server.ssl.keyStoreType=PKCS12
答案 5 :(得分:0)
您可以让Digital Ocean为您生成并更新证书。
https://www.digitalocean.com/docs/networking/load-balancers/how-to/ssl-termination/
答案 6 :(得分:0)
letsencrypt-tomcat查询,并且通过让我们在运行时加密 来刷新证书(无需重新启动)。
它可与独立和嵌入式Tomcat以及Spring Boot一起使用。
它包装在Docker映像中,可以轻松重用。该图像包含:
阅读此blog post,以了解如何在您的应用程序中使用它,以及有关技术细节的更多信息。