我是 SSL 设置的新手,如果我的问题有误,请原谅。
我已经在 AWS EC2 (Windows) 实例上部署了一个 Spring Boot 应用程序,其中包含大量 RESTful 服务,通过公共(public) IP 地址 (AWS) 公开,我能够公开访问它们 (http)。我现在想对它们进行 SSL(https)。我正在购买证书,在其中一个设置步骤中,他们给出了这些行来验证文本文件,有人知道吗?您能否建议我需要在我的 Spring Boot 应用程序 (Tomcat) 上创建 ./well-known/pki-validation 文件夹的位置?
发行供应商将为您提供一个简单的基于文本的文件,将其放置在您站点“主目录”的子文件夹/.well-known/pki-validation/中。如果操作正确,供应商可以通过 HTTP://查看此文件,然后在确认后颁发证书。
最佳答案
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
重启服务器即可!
关于spring-boot - Spring Boot - SSL 设置 (./well-known/pki-validation),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51767924/