我对保护服务器不太熟悉,所以我对这方面不太了解,但我需要让运行在数字海洋水滴上的Spring Boot应用程序使用HTTPS。
我的想法是注册一个letsencrypt证书,然后告诉Spring使用它。
然而,我不知道如何做到这一点。
谢谢。
另一种选择是使用Spring Boot Starter ACME:
https://github.com/creactiviti/spring-boot-starter-acme
ACME(自动证书管理环境)它是LetsEncrypt用于自动颁发证书的协议。
步骤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
我写了两篇关于Let’s Encrypt和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
我阅读了一些教程来在Spring Boot中配置LetsEncrypt SSL证书。我们有一个用spring Boot开发的应用程序。它运行在嵌入式Tomcat8080上。我有另一个角8应用程序,这是运行在默认的4200端口。在JWTToken的帮助下,两个应用程序都能够正确地相互通信。现在我希望我的应用程序/域应该是ssl启用。所以我的问题是,我们是否需要为两个应用程序单独的SSL证书,或者在S
基于我(gradle 1.10和gradle plugin 0.8)的android项目由一个大型android库组成,它依赖于3种不同的android应用程序 在我的图书馆里,我希望能够使用这样的结构 因为proguard将能够根据某个_标志的最终值来减小生成的apk的大小 但我不知道该如何处理gradle,因为: 我试着玩建筑类型之类的东西,但没有成功 为“我的库”和“我的应用”生成共享Bui
我正在使用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=