Spring Boot-SSL设置(./众所周知/ pki-验证)

时间:2018-08-09 13:08:04

标签: spring-boot tomcat ssl lets-encrypt certbot

我是SSL设置的新手,如果我的问题有误,请原谅。

我已在带有大量静态服务的AWS EC2(Windows)实例上部署了Spring Boot应用程序,这些服务通过公共IP地址(AWS)公开,我可以公开访问它们(http)。我现在想对它们进行SSL(https)。我正在购买证书的过程中,在其中一个设置步骤中,他们提供了以下几行来验证文本文件,有人知道吗?您能建议我在Spring Boot应用程序(Tomcat)上创建 .// known / pki-validation 文件夹的位置吗?

发行商将为您提供一个简单的基于文本的文件,该文件可放在您站点的“主目录”中的/.well-known/pki-validation/子文件夹中。如果操作正确,供应商可以通过HTTP://查看此文件,然后在确认后颁发证书。

1 个答案:

答案 0 :(得分:0)

1在服务器中安装certboot。

 git clone https://github.com/certbot/certbot
 cd certbot
 ./certbot-auto --help

2获得证书

为了获得证书,您需要通过服务器公开某些文件。我使用spring boot tomcat的目标文件夹来执行此操作。

./certbot-auto certonly --webroot -w {SpringBootProjectDir}/target/classes/static/ -d {yourDomain.com}  

此命令获取证书并将其留在:

/etc/letsencrypt/live/{yourDomain.com}/

Tomcat无法读取提供的证书,因为它不是p12格式。我们必须以这种格式生成证书。使用此命令

sudo openssl pkcs12 -export -in /etc/letsencrypt/live/{yourDomain.com}/fullchain.pem -inkey /etc/letsencrypt/live/{yourDomain.com}/privkey.pem -out /etc/letsencrypt/live/{yourDomain.com}/keystore.p12   -name tomcat  -CAfile /etc/letsencrypt/live/{yourDomain.com}/chain.pem    -caname root  

它将询问您密码。保留密码。

3配置服务器

server.port=443

server.ssl.enabled=true
server.ssl.key-store: /etc/letsencrypt/live/{yourDomain.com}/keystore.p12
server.ssl.key-store-password: {password}
server.ssl.keyStoreType: PKCS12
server.ssl.keyAlias: tomcat

重启服务器就可以了!