我是一个新的安全服务器,所以我真的不知道这方面的很多,但我需要让我的Sping Boot 应用程序,这是运行在一个数字海洋水滴使用HTTPS。我的想法是注册一个letsencrypt证书,然后告诉Spring使用它。但是,我不知道该怎么做。
yqlxgs2m1#
我写了2篇关于Let's Encrypt和**Sping Boot **的博客文章。1.正在颁发证书。Spring Boot Application Secured by Let’s Encrypt Certificate1.续订证书. Let’s Encrypt Certificate Renewal: for Spring Boot简单地说,步骤如下:1.正在拉出Let's Encrypt client(certbot)。1.正在为您的域(例如www.example.com)生成证书example.com./certbot-auto certonly -a standalone -d example.com -d www.example.com内容在/etc/letsencrypt/live/example.com中生成。Sping Boot 需要PKCS#12格式的文件。这意味着您必须将密钥转换为PKCS#12密钥库(例如,使用OpenSSL)。如下所示:1.打开/etc/letsencrypt/live/example.com目录。1.
./certbot-auto certonly -a standalone -d example.com -d www.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`
现在,在/etc/letsencrypt/live/example.com中生成了包含PKCS12的文件 keystore.p12。现在是时候配置您的Sping 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以了解进一步的细节和备注。
huus2vyu2#
步骤1:从git下载certbot
您需要在您的域名地址指向的服务器上获取Let 's Encrypt的源代码。此步骤可能需要几分钟时间。$ git克隆https://github.com/certbot/certbot$ cd证书机器人$ ./certbot-自动--帮助备注:Python 2.7.8(或以上)需要预先安装。
步骤2:生成证书与私钥
通过在您的终端中执行以下命令,Let 's Encrypt将为您生成证书和私钥。$ ./certbot-auto仅证书-一个独立的\
-d example.com -d example.com
备注:密钥在/etc/letsmrypt/live/ www.example.com目录中生成example.com
步骤3:从PEM文件生成PKCS 12文件
要将PEM文件转换为PKCS 12版本,请执行以下操作:访问/etc/letssencrypt/live/example.com,在终端中使用OpenSSL将密钥转换为PKCS 12,如下所示。$ openssl pkcs 12-导出-在完整链.pem中\
-inkey privkey.pem \ -out keystore.p12 \ -name tomcat \ -CAfile chain.pem \ -caname root
输入导出密码:正在验证-输入导出密码:(Note:-一次写一行,然后按回车键)
步骤4:配置Sping Boot 应用程序
打开您的 'application.properties' 将此配置放在那里。服务器。端口=8443安全性。要求-ssl =true/etc/etc/etc/etc/etc/etc/etc/etc/etc/etc/etc/etc/etc/etc/etc/etc/etc/etc/etc/etc/etc/etc/etc/etc/etc/etc/etc/etc/etc/etc/etc/etc/etc/etc/etc/etc/etc/etc/etc/etc/etc/etc/etc/etc/etc/etc/etc/etc/etc/etc/etc/etc/etc/etc/etc/etc/etc/etc/etc/etc/etc/etc/etc/etc/etc/etc/etc/etc/etc/etc/etc/etc/etc/etc/etc/etc/etc/etc/etc/etc/etc/etc/etc/etc/etc/etc/etc/etc/etc/etc/etc/etc/etc/etc/etc/etc/etc/etc/etc/服务器.ssl.密钥库-密码= * 密码 *服务器.ssl.密钥存储类型= PKCS 12服务器.ssl.密钥别名= tomcat
x6yk4ghg3#
另一个选项是使用Sping Boot Starter ACME:https://github.com/creactiviti/spring-boot-starter-acmeACME(自动证书管理环境)是LetsEncrypt用来自动颁发证书的协议。
fdx2calv4#
对于 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
ippsafx75#
letsencrypt-tomcat通过Let's encryptat runtime查询和刷新证书(无需重新启动)。它可以与独立和嵌入式Tomcat以及Sping Boot 一起使用。它被打包到Docker映像中,以便于重复使用。
阅读此blog post,了解如何将其用于您的应用程序,以及更多有关技术细节的信息。
cgyqldqp6#
我用纯Java创建了一个小型库,它允许Spring-Boot中的嵌入式Tomcat自动获取并保持Lets Encrypt证书新鲜:Spring-Boot LetsEncrypt helper它只是ACME 4J/BouncyCastle上的one Java file+依赖项,因此可以将其作为代码重用简而言之,它执行以下操作:1.在应用程序启动时,它会创建在server.ssl属性中定义的KeyStore(如果它还不存在)(并在那里添加自签名的过期证书)。1.为来自LetsEncrypt的HTTP-01 ACME质询在端口80上注册Tomcat连接器1.启动线程以检查KeyStore中的证书是否已过期或丢失1.如果证书过期/丢失,则向LetsEncrypt发出命令,并在端口80上传递HTTP-01 ACME质询。1.通过质询后,它将证书存储到在server.ssl中定义的KeyStore中,并在启用Tomcat HTTPS的连接器上发出reloadSslHostConfigs通过这些步骤,从颁发到更新的整个LetsEncrypt证书生命周期都包含在Java应用程序本身中,而无需任何非Java第三方
server.ssl
reloadSslHostConfigs
waxmsbnn7#
我在将.pem导出为.p12时遇到了一些麻烦,keytool无法识别文件格式。下面是经过多次搜索后对我有效的命令:
openssl pkcs12 -export -in fullchain.pem -inkey privkey.pem -out keystore.p12 -name tomcat -CAfile chain.pem -caname root -legacy -passout pass:changeit
之后,您将拥有文件keystore.p12,因此请在www.example.com中application.properties按照Emad货车Ben之前的说明设置配置
m0rkklqb8#
1.从letsencrypt获取SSL证书1.使用Java中的keytool命令将其添加到密钥库中1.配置Spring应用程序以使用上面生成的密钥库该文件应如下所示:
keytool
server.port = 8443 server.ssl.key-store = classpath:sample.jks server.ssl.key-store-password = secret server.ssl.key-password = password
8条答案
按热度按时间yqlxgs2m1#
我写了2篇关于Let's Encrypt和**Sping Boot **的博客文章。
1.正在颁发证书。Spring Boot Application Secured by Let’s Encrypt Certificate
1.续订证书. Let’s Encrypt Certificate Renewal: for Spring Boot
简单地说,步骤如下:
1.正在拉出Let's Encrypt client(certbot)。
1.正在为您的域(例如www.example.com)生成证书example.com
./certbot-auto certonly -a standalone -d example.com -d www.example.com
内容在
/etc/letsencrypt/live/example.com
中生成。Sping Boot 需要PKCS#12格式的文件。这意味着您必须将密钥转换为PKCS#12密钥库(例如,使用OpenSSL)。如下所示:1.打开
/etc/letsencrypt/live/example.com
目录。1.
现在,在
/etc/letsencrypt/live/example.com
中生成了包含PKCS12的文件 keystore.p12。现在是时候配置您的Sping Boot 应用程序了。打开application.properties文件,并在其中放置以下属性:
请阅读我的blog post以了解进一步的细节和备注。
huus2vyu2#
步骤1:从git下载certbot
您需要在您的域名地址指向的服务器上获取Let 's Encrypt的源代码。此步骤可能需要几分钟时间。
$ git克隆https://github.com/certbot/certbot
$ cd证书机器人
$ ./certbot-自动--帮助
备注:Python 2.7.8(或以上)需要预先安装。
步骤2:生成证书与私钥
通过在您的终端中执行以下命令,Let 's Encrypt将为您生成证书和私钥。
$ ./certbot-auto仅证书-一个独立的\
备注:密钥在/etc/letsmrypt/live/ www.example.com目录中生成example.com
步骤3:从PEM文件生成PKCS 12文件
要将PEM文件转换为PKCS 12版本,请执行以下操作:访问/etc/letssencrypt/live/example.com,在终端中使用OpenSSL将密钥转换为PKCS 12,如下所示。
$ openssl pkcs 12-导出-在完整链.pem中\
输入导出密码:
正在验证-输入导出密码:
(Note:-一次写一行,然后按回车键)
步骤4:配置Sping Boot 应用程序
打开您的 'application.properties' 将此配置放在那里。
服务器。端口=8443安全性。要求-ssl =true
/etc/etc/etc/etc/etc/etc/etc/etc/etc/etc/etc/etc/etc/etc/etc/etc/etc/etc/etc/etc/etc/etc/etc/etc/etc/etc/etc/etc/etc/etc/etc/etc/etc/etc/etc/etc/etc/etc/etc/etc/etc/etc/etc/etc/etc/etc/etc/etc/etc/etc/etc/etc/etc/etc/etc/etc/etc/etc/etc/etc/etc/etc/etc/etc/etc/etc/etc/etc/etc/etc/etc/etc/etc/etc/etc/etc/etc/etc/etc/etc/etc/etc/etc/etc/etc/etc/etc/etc/etc/etc/etc/etc/etc/etc/etc/etc/etc/etc/etc/
服务器.ssl.密钥库-密码= * 密码 *
服务器.ssl.密钥存储类型= PKCS 12
服务器.ssl.密钥别名= tomcat
x6yk4ghg3#
另一个选项是使用Sping Boot Starter ACME:
https://github.com/creactiviti/spring-boot-starter-acme
ACME(自动证书管理环境)是LetsEncrypt用来自动颁发证书的协议。
fdx2calv4#
对于 Spring Boot webflux,属性配置已更改
ippsafx75#
letsencrypt-tomcat通过Let's encryptat runtime查询和刷新证书(无需重新启动)。
它可以与独立和嵌入式Tomcat以及Sping Boot 一起使用。
它被打包到Docker映像中,以便于重复使用。
阅读此blog post,了解如何将其用于您的应用程序,以及更多有关技术细节的信息。
cgyqldqp6#
我用纯Java创建了一个小型库,它允许Spring-Boot中的嵌入式Tomcat自动获取并保持Lets Encrypt证书新鲜:Spring-Boot LetsEncrypt helper
它只是ACME 4J/BouncyCastle上的one Java file+依赖项,因此可以将其作为代码重用
简而言之,它执行以下操作:
1.在应用程序启动时,它会创建在
server.ssl
属性中定义的KeyStore(如果它还不存在)(并在那里添加自签名的过期证书)。1.为来自LetsEncrypt的HTTP-01 ACME质询在端口80上注册Tomcat连接器
1.启动线程以检查KeyStore中的证书是否已过期或丢失
1.如果证书过期/丢失,则向LetsEncrypt发出命令,并在端口80上传递HTTP-01 ACME质询。
1.通过质询后,它将证书存储到在
server.ssl
中定义的KeyStore中,并在启用Tomcat HTTPS的连接器上发出reloadSslHostConfigs
通过这些步骤,从颁发到更新的整个LetsEncrypt证书生命周期都包含在Java应用程序本身中,而无需任何非Java第三方
waxmsbnn7#
我在将.pem导出为.p12时遇到了一些麻烦,keytool无法识别文件格式。下面是经过多次搜索后对我有效的命令:
之后,您将拥有文件keystore.p12,因此请在www.example.com中application.properties按照Emad货车Ben之前的说明设置配置
m0rkklqb8#
1.从letsencrypt获取SSL证书
1.使用Java中的
keytool
命令将其添加到密钥库中1.配置Spring应用程序以使用上面生成的密钥库
该文件应如下所示: