我正在使用AWS弹性豆秆,没有负载平衡器作为我的Java应用程序的服务器。我想添加SSL证书文件并更新nginx配置以接受我的web应用程序上的SSL流量。
使用负载平衡器不是我的选择,因为我不想招致额外的每月费用。
我当前的部署过程是在使用以下命令创建JAR文件之后:
‘`mvn清洁包’我从AWS控制台上传jar文件。
使用AWS 文档,我们可以使用以下语法添加自定义文件:
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配置没有得到更新。
到目前为止我尝试过的:
按照这一链接:
它更新EC2实例中的证书文件,但不更新NGINX,并且部署失败,出现以下错误。
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配置和更新证书文件,则我的实例将使用HTTPS成功运行。但可以看到,这仍然是手册,实际上这样做消除了使用弹性豆茎的目的。是否有任何方法可以在部署时自动上传证书文件并更新NGINX配置?
发布于 2021-06-02 10:05:39
下面这句话对我很管用。在项目的根目录中,创建如下图所示的目录和文件:

除了AWS文件中提到的步骤之外,还将折叠内容添加到在aws文件夹中创建的Procfile中:
web: java -jar demo-0.0.1-SNAPSHOT.jar
在您的pom.xml文件中,更新<configuration>如下所示:
<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.jar:mvn clean package
编辑:您应该在https-instance.config文件末尾添加nginx服务器重新启动命令,以便在每次上传新构建时重新启动服务器,如下所示:
container_commands:
01restart_nginx:
command: "service nginx restart"https://stackoverflow.com/questions/63926402
复制相似问题