首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >为添加SSL证书使用AWS弹性Bean秸秆托管,使用Amazon 2

为添加SSL证书使用AWS弹性Bean秸秆托管,使用Amazon 2
EN

Stack Overflow用户
提问于 2020-09-16 18:59:12
回答 1查看 950关注 0票数 4

我正在使用AWS弹性豆秆,没有负载平衡器作为我的Java应用程序的服务器。我想添加SSL证书文件并更新nginx配置以接受我的web应用程序上的SSL流量。

使用负载平衡器不是我的选择,因为我不想招致额外的每月费用。

我当前的部署过程是在使用以下命令创建JAR文件之后:

‘`mvn清洁包’我从AWS控制台上传jar文件。

使用AWS 文档,我们可以使用以下语法添加自定义文件:

代码语言:javascript
复制
files:
  /etc/pki/tls/certs/server.crt:
    content: |
      -----BEGIN CERTIFICATE-----
      certificate file contents
      -----END CERTIFICATE-----
      
  /etc/pki/tls/certs/server.key:
    content: |
      -----BEGIN RSA PRIVATE KEY-----
      private key contents # See note below.
      -----END RSA PRIVATE KEY-----

container_commands:
  01restart_nginx:
    command: "service nginx restart"

并更新NGINX,在以下路径中添加更新的配置:ebextensions/nginx/conf.d/https.conf

但是,我的证书文件和Nginx配置没有得到更新。

到目前为止我尝试过的:

按照这一链接:

JAR中的弹簧引导+弹性豆杆.ebextensions

它更新EC2实例中的证书文件,但不更新NGINX,并且部署失败,出现以下错误。

代码语言:javascript
复制
Application deployment failed at 2020-09-16T08:43:16Z with exit status 1 and error: Engine execution has encountered an error.
Incorrect application version "system-backend-source-28" (deployment 33). Expected version "system-backend-source-27" (deployment 32).

我使用的是Amazon 2,所以我没有将配置文件放在.ebextension文件夹中,而是按照这个答案,将NGINX文件放置在.platform目录中,但是使用passes进行部署,但不更新新的NGINX配置。它也不上传证书文件。

如何在弹性豆秆中扩展nginx配置(Amazon 2)

如果手动编辑Nginx配置和更新证书文件,则我的实例将使用HTTPS成功运行。但可以看到,这仍然是手册,实际上这样做消除了使用弹性豆茎的目的。是否有任何方法可以在部署时自动上传证书文件并更新NGINX配置?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-06-02 10:05:39

下面这句话对我很管用。在项目的根目录中,创建如下图所示的目录和文件:

除了AWS文件中提到的步骤之外,还将折叠内容添加到在aws文件夹中创建的Procfile中:

web: java -jar demo-0.0.1-SNAPSHOT.jar

在您的pom.xml文件中,更新<configuration>如下所示:

代码语言:javascript
复制
<configuration>
    <tasks>

       <property name="buildName" value="${project.build.finalName}.jar"/>

        <copy todir="${project.build.directory}/aws-build/" overwrite="false">
           <fileset file="${project.build.directory}/${project.build.finalName}.jar"/>
           <fileset dir="./aws" />
        </copy>

        <replace file="${project.build.directory}/aws-build/Procfile" token="@jarname@" value="${buildName}"/>

        <zip compress="false" destfile="${project.build.directory}/aws-build/app-to-deploy.jar" basedir="${project.build.directory}/aws-build"/>

    </tasks>
</configuration>

这将确保您的证书被捆绑在构建中,并且当您上传新构建时,证书将被上传。对于我的特殊情况,然后我上传在运行以下命令之后创建的app-to-deploy.jarmvn clean package

编辑:您应该在https-instance.config文件末尾添加nginx服务器重新启动命令,以便在每次上传新构建时重新启动服务器,如下所示:

代码语言:javascript
复制
container_commands:
      01restart_nginx:
        command: "service nginx restart"
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/63926402

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档