当前位置: 首页 > 知识库问答 >
问题:

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

韩乐湛
2023-03-14

我对保护服务器不太熟悉,所以我对这方面不太了解,但我需要让运行在数字海洋水滴上的Spring Boot应用程序使用HTTPS。

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

然而,我不知道如何做到这一点。

谢谢。

共有3个答案

艾雪风
2023-03-14

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

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

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

柯学
2023-03-14

步骤1:从git下载certbot

您需要在您的域地址指向的服务器上获取Let's Encrypt的源代码。此步骤可能需要几分钟。

$git克隆https://github.com/certbot/certbot

$cd certbot

$ ./certbot自动--帮助

备注:应事先安装Python 2.7.8(或更高版本)。

步骤2:生成证书和私钥

通过在终端中执行以下命令,让我们加密为您生成证书和私钥。

$ ./certbot auto certonly-独立\

-d example.com -d example.com

备注:密钥在/etc/letsencrypt/live/example中生成。com目录

Step3:从PEM文件生成PKCS12文件

要将PEM文件转换为PKCS12版本:转到 /etc/letsencrypt/live/example.com在终端中使用OpenSSL将密钥转换为PKCS12,如下所示。

$openssl pkcs12-导出-全链。pem公司\

       -inkey privkey.pem \

           -out keystore.p12 \

       -name tomcat \

       -CAfile chain.pem \

       -caname root

输入导出密码:

验证-输入导出密码:

(注意:-一次写入一行,然后按enter键)

步骤4:配置Spring Boot应用程序

打开您的应用程序。“属性”将此配置放在那里。

server.port=8443security.require-ssl=true

服务器ssl。密钥存储=/etc/letsencrypt/live/example。com/密钥库。p12页

服务器ssl。密钥存储密码=密码

服务器ssl。keyStoreType=PKCS12

server.ssl.key别名=tomcat

周墨一
2023-03-14

我写了两篇关于Let’s Encrypt和Spring Boot的博客文章。

  1. 颁发证书。Spring Boot应用程序受Let’s Encrypt证书保护
  2. 续订证书。让我们加密证书续订:用于Spring Boot

简而言之,步骤如下:

>

  • 拉取Let's Encrypt客户端(certbot)。

    为您的域生成证书(例如example.com)

    <代码>/certbot auto certonly-一个独立的-d示例。com-d www.example。com

    事情是在/etc/lets加密/live/example.com中生成的。Spring Boot需要PKCS#12格式的文件。这意味着您必须将密钥转换为PKCS#12密钥库(例如使用OpenSSL)。如下:

    `openssl pkcs12 -export -in fullchain.pem -inkey privkey.pem -out keystore.p12 -name tomcat -CAfile chain.pem -caname root`
    

    带有PKCS12的文件keyore. p12现在在/etc/lets加密/live/example.com中生成。

    是时候配置Spring Boot应用程序了。打开应用程序。属性文件,并将以下属性放在其中:

    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
    

    阅读我的博客文章,了解更多详细信息和评论。

  •  类似资料:
    • 我有Kafka Streams java应用程序启动并运行。我试图使用KSQL创建简单的查询,并使用Kafka流来实现复杂的解决方案。我希望将KSQL和Kafka流作为Java应用程序运行。 我打算通过https://github.com/confluentinc/ksql/blob/master/ksqldb-examples/src/main/java/io/confluent/ksql/em

    • 基于我(gradle 1.10和gradle plugin 0.8)的android项目由一个大型android库组成,它依赖于3种不同的android应用程序 在我的图书馆里,我希望能够使用这样的结构 因为proguard将能够根据某个_标志的最终值来减小生成的apk的大小 但我不知道该如何处理gradle,因为: 我试着玩建筑类型之类的东西,但没有成功 为“我的库”和“我的应用”生成共享Bui

    • 我阅读了一些教程来在Spring Boot中配置LetsEncrypt SSL证书。我们有一个用spring Boot开发的应用程序。它运行在嵌入式Tomcat8080上。我有另一个角8应用程序,这是运行在默认的4200端口。在JWTToken的帮助下,两个应用程序都能够正确地相互通信。现在我希望我的应用程序/域应该是ssl启用。所以我的问题是,我们是否需要为两个应用程序单独的SSL证书,或者在S

    • 我正在使用camel-spring boot starter运行kafka消费者应用程序。SpringBoot应用程序实现CommandLineRunner。在我的应用程序中配置了以下属性。 我试图在端口8080上公开springboot执行器指标,但我在公开endpoint方面面临挑战,因为它是非Web应用程序。urlhttp://localhost:8080/actuator/metrics给

    • 我正在使用Java Webstart技术开发一个Java桌面应用程序。我使用有效的证书对我的应用程序进行签名,并使用JnlpDownloadServlet进行部署。我用maven webstart插件准备了所有这些基础设施。 但是当我的证书过期,我不得不辞职并重新部署我的应用程序时,我在让webstart完全重新下载我的应用程序时遇到了问题。 据我所知,根据我可以从Internet收集的内容(We

    • 我是kubernetes的新手,需要在openshift平台上使用k8s confimap将springboot应用程序的属性文件外部化。我已将属性文件保存在git repo中,作为“greeter.message=Spring Bootmyapplication.properties已在库伯内特斯上挂载为卷!”并使用“oc create confimap myconfig--from-file=