【问题标题】:How to create folder on Elastic Beanstalk server to install LetsEncrypt SSL certificate with AcmePHP如何在 Elastic Beanstalk 服务器上创建文件夹以使用 AcmePHP 安装 LetsEncrypt SSL 证书
【发布时间】:2019-08-27 10:41:00
【问题描述】:

我有一个在 Elastic Beanstalk 单实例服务器上运行的站点,并希望使用 AcmePHP 库从 LetsEncrypt 添加自动 SSL 证书生成。

库尝试将证书存储在 ~/.acmephp 中,服务器以错误响应

Failed to create "/home/webapp/.acmephp": mkdir(): Permission denied.

acmephp 库没有更改内置路径的选项,我希望能够将文件存储在默认目录中,而不是 fork 和重新编译脚本。

有谁知道我如何授予应用程序在 Web 根目录之外创建此目录的权限,或者如何让服务器自动创建它并使其可供应用程序使用?

【问题讨论】:

标签: amazon-web-services permissions ssl-certificate amazon-elastic-beanstalk lets-encrypt


【解决方案1】:

看起来因为它是由 webapp 用户运行的,所以当 acmePHP 尝试将证书存储在该用户的主目录下时它会失败,因为该目录不存在(afaik 仅限 webapp 用户运行 httpd,它肯定没有主目录)。

一个非常肮脏的解决方法可能是在 .您项目中的 ebextensions 文件夹。该文件将是 .ebextensions/create_home.config,其中包含如下内容:

files:
  "/tmp/create-home.sh" :
    mode: "000755"
    content: |
      #!/usr/bin/env bash
      mkdir -p /home/webapp
      chown webapp:webapp -R /home/webapp

commands:
  01_create:
    command: "/tmp/create-home.sh"

该脚本由 root 用户运行,然后将 /home/webapp 文件夹的所有权分别更改为 webapp 用户和组。希望对你有帮助

【讨论】:

    猜你喜欢
    • 2020-05-16
    • 2021-10-21
    • 2016-08-19
    • 2015-06-14
    • 1970-01-01
    • 2013-02-25
    • 2020-06-08
    • 2016-08-18
    • 2018-03-17
    相关资源
    最近更新 更多