如何设置letsencrypt SSL证书并在Spring Boot应用程序中使用它?

我是安全服务器的新手,所以我对此并不太了解,但我需要让我在Spring Ocean Droplet上运行的Spring Boot应用程序使用HTTPS。

我的想法是注册一个letsencrypt证书然后告诉Spring使用它。

但是,我不知道该怎么做。

谢谢。

第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 \

 -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 

输入导出密码:

validation – 输入导出密码:

(注意: – 一次写一行并按回车键)

第四步:配置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 = 密码

server.ssl.keyStoreType = PKCS12

server.ssl.keyAlias = tomcat

另一种选择是使用Spring Boot Starter ACME:

https://github.com/creactiviti/spring-boot-starter-acme

ACME(自动证书管理环境)它是LetsEncrypt用于自动颁发证书的协议。

  1. 从letsencrypt获取SSL证书
  2. 使用Java中的keytool命令将其添加到密钥库中
  3. 配置Spring应用程序以使用上面生成的密钥库

该文件应如下所示:

  server.port = 8443 server.ssl.key-store = classpath:sample.jks server.ssl.key-store-password = secret server.ssl.key-password = password 

对于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