如何在 Ubuntu 18.04 机器上的 Apache 服务器上为虚拟主机启用 SSL

如何在 Ubuntu 18.04 机器上的 Apache 服务器上为虚拟主机启用 SSL

我花了 3-4 天的时间创建了具有不同 PHP 版本的虚拟主机。我希望主网站在 上运行PHP 7(我使用了PHP 7.4),子域名在 上运行PHP 5.6。子域名网站太旧,不支持最新版本的 PHP。

但是,我已设法通过fcgi方法安装了两个 PHP 版本(7.4 和 5.6),并能够配置以在两个版本中运行两个网站。我已检查 PHP 信息,它运行正常。

现在,我正在努力为这些网站启用 SSL。我使用了 Cloudflare,但问题是域名没有响应https。在谷歌搜索后,我为 SSL 创建了另一个虚拟主机文件/etc/apache2/sites-available,并输入了如下代码。但不起作用。

在我尝试安装自签名证书并在虚拟主机文件中使用其证书后。这也不起作用。我按照此文档获取自签名证书。 https://www.digitalocean.com/community/tutorials/how-to-create-a-self-signed-ssl-certificate-for-apache-in-ubuntu-16-04

笔记:非 SSL URL 运行正常。问题出在 SSL URL 上。

<IfModule mod_ssl.c>
    <VirtualHost _default_:443>
        ServerAdmin [email protected]
        ServerName dev.example.com
        DocumentRoot /var/www/dev.example.com
        # DirectoryIndex index.php
        
        SSLEngine on

        # default SSL certificate
        # SSLCertificateFile /etc/ssl/certs/ssl-cert-snakeoil.pem
        # SSLCertificateKeyFile /etc/ssl/private/ssl-cert-snakeoil.key

        # self signed certificate
        SSLCertificateFile      /etc/ssl/certs/apache-selfsigned.crt
        SSLCertificateKeyFile /etc/ssl/private/apache-selfsigned.key

        <Directory "/var/www/dev.example.com">
            Options Indexes FollowSymLinks MultiViews
            AllowOverride All
            Order allow,deny
            allow from all
        </Directory>

        <FilesMatch \.php$>
            # For Apache version 2.4.10 and above, use SetHandler to run PHP as a fastCGI process server
            SetHandler "proxy:unix:/run/php/php7.4-fpm.sock|fcgi://localhost"
        </FilesMatch>

        ErrorLog ${APACHE_LOG_DIR}/dev.example.com_error.log
        CustomLog ${APACHE_LOG_DIR}/dev.example.com_access.log combined

        BrowserMatch "MSIE [2-6]" \
            nokeepalive ssl-unclean-shutdown \
            downgrade-1.0 force-response-1.0
    </VirtualHost>
</IfModule>

相关内容