Lightsail LAMP-添加 SSL 后虚拟主机停止工作

Lightsail LAMP-添加 SSL 后虚拟主机停止工作

经过数小时的研究,我发布了这篇文章。我试图在 Amazon Lightsail 中的 LAMP 实例中创建的单个静态 IP 上添加一个域及其子域,并向两者添加 Let's Encrypt SSL 证书。在添加 SSL 之前,我的虚拟主机运行正常。来自正确目录的文件按照 httpd-vhosts.conf 中的定义提供。但是,在运行 bitnamibncert-tool添加 SSL、https 和 www 重定向后,事情变得一团糟。

问题的详细解释:

  1. 创建一个静态 IP 并将其附加到我的 LAMP 实例。
  2. @.example.com为、www.example.comapp1.example.com和创建了 A 记录www.app1.example.com。全部解析为先前创建的单个静态 IP。
  3. 将repos 拉取到 htdocs ( /opt/bitnami/apache2/htdocs) 中的各个目录。for和/opt/bitnami/apache2/htdocs/mainfor 。example.com/opt/bitnami/apache2/htdocs/app1app1.example.com
  4. 将以下内容放入/opt/bitnami/apache2/conf/extra/httpd-vhosts.conf
<VirtualHost *:80>
    DocumentRoot "htdocs/main"
    ServerName realtypillar.com
</VirtualHost>

<VirtualHost *:80>
    DocumentRoot "htdocs/proutil"
    ServerName pro-util.realtypillar.com
</VirtualHost>
  1. 在“/opt/bitnami/apache2/conf/bitnami/bitnami-apps-vhosts.conf”中添加了语句“Include“/opt/bitnami/apache2/conf/extra/httpd-vhosts.conf””。 (我能够分别访问http://example.comhttp://app1.example.com显示htdocs/main和“htdocs/app11”)
  2. 我运行了sudo /opt/bitnami/bncert-toolexample.com app1.example.com在域列表提示符下输入。在提示符下启用 http 到 https 选项、启用非 www 到 www 选项并禁用 www 到非 www 选项。成功运行该过程,没有任何警告或错误消息。
  3. 现在,当我通过浏览器访问 example.com 时,它会重定向到https://www.example.com(这是正确的),但显示的是 index.html,htdocs而不是htdocs/mainvhost 配置中指定的。当我访问 app1.example.com 时,它不会重定向到 https,也不会在 url 中添加 www 前缀。但它会从正确的目录(即)加载文件htdocs/app1

- -编辑 - -

以下是我的 httpd conf 文件,供参考:

如果有人能指出我的错误之处,那将会很有帮助吗?

答案1

Bitnami 工程师在这里,

Bitnami HTTPS 配置工具仅更新主虚拟主机(/opt/bitnami/apache2/conf/bitnami/bitnami.conf 文件中的虚拟主机)的 SSL 配置,因此如果您有自定义虚拟主机,则需要使用该工具创建的 SSL 证书手动修改它们。对于您的情况,您需要在您创建的 httpd-vhosts.conf 文件中使用此配置

<VirtualHost *:80>
    DocumentRoot "/opt/bitnami/apache2/htdocs/main"
    ServerName realtypillar.com
    ServerAlias realtypillar.com www.realtypillar.com
    # BEGIN: Enable HTTP to HTTPS redirection
    RewriteEngine On
    RewriteRule ^/(.*) https://realtypillar.com/$1 [R,L]
    # END: Enable HTTP to HTTPS redirection
</VirtualHost>

<VirtualHost *:80>
    DocumentRoot "/opt/bitnami/apache2/htdocs/proutil"
    ServerName pro-util.realtypillar.com
    ServerAlias pro-util.realtypillar.com www.pro-util.realtypillar.com
    # BEGIN: Enable HTTP to HTTPS redirection
    RewriteEngine On
    RewriteRule ^/(.*) https://pro-util.realtypillar.com/$1 [R,L]
    # END: Enable HTTP to HTTPS redirection
</VirtualHost>

<VirtualHost _default_:443>
    DocumentRoot "/opt/bitnami/apache2/htdocs/main"
    ServerName realtypillar.com
    ServerAlias realtypillar.com www.realtypillar.com
        # BEGIN: Enable www to non-www redirection
        RewriteEngine On
        RewriteCond %{HTTP_HOST} !^realtypillar.com$
        RewriteRule ^(.*)$ https://realtypillar.com$1 [R=permanent,L]
        # END: Enable www to non-www redirection
    <Directory "/opt/bitnami/apache2/htdocs/main">
        Options -Indexes +FollowSymLinks -MultiViews
        AllowOverride All
    </Directory>
    SSLEngine on
    SSLCertificateFile "/opt/bitnami/apache2/conf/realtypillar.com.crt"
    SSLCertificateKeyFile "/opt/bitnami/apache2/conf/realtypillar.com.key"
</VirtualHost>

<VirtualHost _default_:443>
    DocumentRoot "/opt/bitnami/apache2/htdocs/proutil"
    ServerName pro-util.realtypillar.com
    ServerAlias pro-util.realtypillar.com www.pro-util.realtypillar.com
        # BEGIN: Enable www to non-www redirection
        RewriteEngine On
        RewriteCond %{HTTP_HOST} !^pro-util.realtypillar.com$
        RewriteRule ^(.*)$ https://pro-util.realtypillar.com$1 [R=permanent,L]
        # END: Enable www to non-www redirection
    <Directory "/opt/bitnami/apache2/htdocs/proutil">
        Options -Indexes +FollowSymLinks -MultiViews
        AllowOverride All
    </Directory>
    SSLEngine on
    SSLCertificateFile "/opt/bitnami/apache2/conf/realtypillar.com.crt"
    SSLCertificateKeyFile "/opt/bitnami/apache2/conf/realtypillar.com.key"
</VirtualHost>

仅供参考,我们讨论了所有这些变化Bitnami 社区论坛的这个主题

相关内容