Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/368.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何从AWS证书管理器导出我的域证书以导入Java密钥库?_Java_Amazon Web Services_Spring Boot_Ssl Certificate - Fatal编程技术网

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

如何从AWS证书管理器导出我的域证书以导入Java密钥库?,java,amazon-web-services,spring-boot,ssl-certificate,Java,Amazon Web Services,Spring Boot,Ssl Certificate,我直接从亚马逊购买了域名“jimtough.org”,这样我就可以在Cloudfront发行版中使用它。现在我有一个非常简单的虚荣网站,它使用证书。我还使用了AWSAPI网关,并确认我可以使用相同的证书提供HTTPS安全URL来使用API网关 我还在EC2服务器上运行Java/Spring引导web应用程序。我已经将Route53 DNS名称与承载我的Spring Boot应用程序的EC2服务器相关联,如下所示:。这是可行的,但它使用的是不安全的HTTP。当我尝试在应用程序中执行基本身份验证时,

我直接从亚马逊购买了域名“jimtough.org”,这样我就可以在Cloudfront发行版中使用它。现在我有一个非常简单的虚荣网站,它使用证书。我还使用了AWSAPI网关,并确认我可以使用相同的证书提供HTTPS安全URL来使用API网关

我还在EC2服务器上运行Java/Spring引导web应用程序。我已经将Route53 DNS名称与承载我的Spring Boot应用程序的EC2服务器相关联,如下所示:。这是可行的,但它使用的是不安全的HTTP。当我尝试在应用程序中执行基本身份验证时,会收到一系列警告,因为这将通过不安全的连接发送我的用户名/密码。很公平

因此,我的下一步是在Spring Security中启用HTTPS,并强制与应用程序建立安全连接。为了做到这一点,我首先需要为EC2主机上的Java运行时提供一个要使用的证书。我找到了如何使用自签名证书执行此操作的示例:

不幸的是,使用自签名证书不是我想要的。我希望用户能够首先浏览我的静态内容网站(),然后通过链接访问我的web应用程序,并继续为我的Spring web应用程序使用相同的网站证书(我的AWS颁发的证书)

问题:如何将AWS颁发的证书用于基于Java的web应用程序?

在AWS证书管理器()中,我看不到任何“导出”或保存证书的方法。我错过什么了吗?也许亚马逊不希望我在他们自己的服务之外使用这个证书

请注意,我最初设置的证书域名为'jimtough.org',附加名称字段设置为'*.jimtough.org',因此我可以在子域上使用证书,就像我在这里尝试的那样


编辑

被接受的答案是正确的。我做了更多的研究,发现SSL证书并不便宜,而且有不同的风格。最便宜的是“DV”(域验证)类型,它只验证SSL证书是否由同时控制关联域(如“mydomain.com”)的DNS记录的人控制。可以颁发更彻底(且更昂贵)的证书类型,其中颁发者必须对所属组织进行背景调查。这些是为处理电子商务、金融交易等的网站设计的,根本不是我需要的

还有多种类型的多站点证书可供选择。最便宜的单域证书仅涵盖您的主域和“www”子域(mysite.com和)。如果您希望覆盖主域的所有子域(app.mysite.com、ftp.mysite.com等),则需要一个“通配符”证书。这些要贵得多。更奇特的证书类型可以覆盖多个不同的域。这些似乎旨在使管理许多不同域且不需要每个域都有不同证书的组织更容易进行证书管理。不是我需要的,所以我没有进一步调查

我决定使用Comodo(最近更名为Sectigo?)提供的“单域子域通配符”证书,他似乎是目前最实惠的证书供应商。

参考:

亚马逊似乎错失了一个机会,因为他们没有参与到这个游戏中来,并免费发布自己的SSL证书。AWS已经具备了所有这样做的基础设施,至少对于DV级证书是如此



您无法导出受公共信任的ACM证书的私钥。您可以将ACM证书用于某些托管服务,但它并不适用于所有用例

AWS证书管理器与其他AWS服务集成,因此 可以配置SSL/TLS证书并将其与您的 负载平衡器、Amazon CloudFront发行版或Amazon API中的API 网关。AWS证书管理器还与AWS Elastic Beanstalk配合使用 和AWS CloudFormation,以获得公共电子邮件验证证书,以提供帮助 您可以在中管理公共证书并将其与应用程序一起使用 AWS云

如果您希望在未与ACM集成的服务上使用证书,或者甚至在本地使用证书,您应该从其他来源获得证书

至于ACM私有CA,它意味着要在组织内使用,因此与您的用例不匹配


您无法导出ACM证书的私钥。AWS根本不允许这种情况。@JulienB。-在AWS上是否还有其他替代方案?我在与证书管理器相同的页面上看到“私有证书颁发机构”部分,但我不熟悉该服务。他们的价格页面上写着:“每个ACM私人CA每月400.00美元,直到你删除该CA。”如果这是AWS提供的所有服务,我会选择不同的选项。