如何从aws证书管理器导出我的域证书以导入java密钥库?

8yoxcaq7  于 2021-06-30  发布在  Java
关注(0)|答案(1)|浏览(724)

我直接从亚马逊购买了域名“jimtough.org”,这样我就可以在cloudfront发行版中使用它了。现在我有一个非常简单的虚荣心网站https://jimtough.org/ 使用证书的。我还使用了awsapi网关,并确认我可以使用相同的证书来提供https安全的url来使用api网关。
我还在ec2服务器上运行java/spring引导web应用程序。我已经将route53 dns名称与承载我的spring boot应用程序的ec2服务器相关联,如下所示:http://instance-b.jimtough.org/. 这是可行的,但它使用的是不安全的http。当我尝试在应用程序中执行基本身份验证时,会收到一堆警告,因为它会通过不安全的连接发送我的用户名/密码。很公平。
因此,我的下一步是在spring安全中启用https,并强制与应用程序建立安全连接。为了做到这一点,我首先需要为ec2主机上的java运行时提供一个证书。我找到了如何使用自签名证书执行此操作的示例:
https://mkyong.com/spring-boot/spring-boot-ssl-https-examples/
https://www.baeldung.com/spring-boot-https-self-signed-certificate
不幸的是,使用自签名证书不是我想要的。我希望用户能够浏览我的静态内容虚荣网站第一(https://jimtough.org/),然后跟踪到我的web应用的链接,并继续为我的spring web应用使用相同的站点证书(我的aws颁发的证书)。
问题:如何在基于java的web应用程序中使用aws颁发的证书?
在aws证书管理器中(https://console.aws.amazon.com/acm/home?region=us-east-1#/),我找不到任何方法“导出”或保存我的证书。我错过什么了吗?也许亚马逊不希望我在他们自己的服务之外使用这个证书?
请注意,我最初设置的证书的域名为'jimtough.org',附加名称字段设置为'*.jimtough.org',这样我就可以在子域上使用证书,就像我在这里尝试的那样。
编辑
朱利安的回答是正确的。我做了更多的研究,发现ssl证书并不便宜,而且有不同的风格。最便宜的是“dv”(域验证)类型,它只验证ssl证书是否由同时控制关联域(如“mydomain.com”)的dns记录的人控制。可以颁发更彻底(而且更昂贵)的证书类型,其中颁发者必须对所属组织进行背景检查。这些是为处理电子商务,金融交易等网站的意思,根本不是我需要的。
还有多种类型的多站点证书可供选择。最便宜的单域证书只包括主域和“www”子域(mysite.com和www.mysite.com). 如果您希望覆盖主域的所有子域(app.mysite.com、ftp.mysite.com等),则需要一个“通配符”证书。这些要贵得多。更奇特的证书类型可以覆盖多个不同的域。这似乎是为了使证书管理更容易的组织,管理许多不同的领域,不需要为每个不同的证书。不是我需要的,所以我没有进一步调查。
我决定使用来自comodo(最近更名为sectigo?)的“带有子域通配符的单域”证书,他现在似乎是最便宜的证书供应商。
参考文献:https://www.techradar.com/news/best-ssl-certificate-provider
亚马逊似乎错过了一个机会,他们不参与这个游戏,并发行自己的ssl证书收费。aws已经有了这样做的所有基础设施,至少是dv级证书。

inb24sb2

inb24sb21#

不能导出公开信任的acm证书的私钥。您可以对一些托管服务使用acm证书,但它并不适用于所有用例。
https://docs.aws.amazon.com/acm/latest/userguide/export-private.html
aws证书管理器与其他aws服务集成,因此您可以提供ssl/tls证书,并使用您的弹性负载平衡器、amazon cloudfront分发或amazonapi网关中的api进行部署。aws certificate manager还与aws elastic beanstalk和aws cloudformation一起使用公共电子邮件验证的证书,以帮助您管理公共证书并将其用于aws云中的应用程序。
https://aws.amazon.com/certificate-manager/features/?nc=sn&loc=2
如果您想在未与acm集成的服务上使用证书,甚至在本地使用证书,您应该从其他来源获取证书。
至于acm私有ca,它意味着要在一个组织内使用,因此与您的用例不匹配。
https://docs.aws.amazon.com/acm-pca/latest/userguide/pcawelcome.html

相关问题