调试 Apache 自签名 SSL 证书时遇到问题

调试 Apache 自签名 SSL 证书时遇到问题

我正在尝试设置一个自签名 SSL 证书,以便我可以使用 SSL 开发我的应用程序(这样我最终就可以让我的网站使用 SSL 运行......)。我创建了一个带有无头 API(Lumen)的 Angular 网站,并尝试使用 ServerFault 中的一个问题设置一个多域 SSL 证书:

如何为 Apache2 创建多域自签名证书?

测试命令已检查完毕,因此我尝试使用以下 Apache 配置安装证书:

<VirtualHost *:80>
        ServerAdmin [email protected]
        ServerName api.gamersplane.local
        DocumentRoot /var/www/GamersPlane.api/public
        <Directory /var/www/GamersPlane.api/public/>
                Options Indexes FollowSymLinks
                AllowOverride All
                Require all granted
        </Directory>

        ErrorLog "|/usr/bin/cronolog /var/log/gamersplane/%Y/%m/%d/error.log"

        # Possible values include: debug, info, notice, warn, error, crit,
        # alert, emerg.
        LogLevel notice

        CustomLog ${APACHE_LOG_DIR}/gamersplane/access.log combined

        SSLEngine on
        SSLCertificateFile /var/www/GamersPlane.api/ssl/gamersplane.local.pem
        SSLCertificateKeyFile /var/www/GamersPlane.api/ssl/gamersplane.local.key
</VirtualHost>

不幸的是,当我访问我的网站时,我得到了This site can’t provide a secure connection。我尝试用谷歌搜索这个问题,但一切似乎都特定于某些网站/配置,我不知道如何调试出了什么问题。

我通过 Digital Ocean 指南设置了 Apache 配置,该指南还推荐了这些配置,但我不确定。我尝试过使用这些配置和不使用它们,但都没有成功:

<FilesMatch "\.(cgi|shtml|phtml|php)$">
    SSLOptions +StdEnvVars
</FilesMatch>
<Directory /usr/lib/cgi-bin>
    SSLOptions +StdEnvVars
</Directory>

我很乐意得到帮助以了解如何调试/解决这些问题。

答案1

您需要配置另一个 apache VirtualHost 并在端口 443 上监听。

看:https://httpd.apache.org/docs/2.4/ssl/ssl_howto.html

而且,即使是为了开发,我也不会使用自签名证书,因为你可以免费从公共证书颁发机构获得签名的证书https://letsencrypt.org/

答案2

我修改了你的配置某物有用。应该可以正常工作,但未经测试。

# only if not already listen to port 443 ! apache ssl module have to be enabled, too !
Listen 443

<VirtualHost *:443>
    ServerAdmin [email protected]
    ServerName api.gamersplane.local
    # ServerAlias api2.gamersplane.local
    DocumentRoot /var/www/GamersPlane.api/public
    <Directory /var/www/GamersPlane.api/public/>
            Options Indexes FollowSymLinks
            AllowOverride All
            Require all granted
    </Directory>

    ErrorLog "|/usr/bin/cronolog /var/log/gamersplane/%Y/%m/%d/error.log"

    # Possible values include: debug, info, notice, warn, error, crit,
    # alert, emerg.
    LogLevel notice

    CustomLog ${APACHE_LOG_DIR}/gamersplane/access.log combined

    SSLEngine on
    SSLCertificateFile /var/www/GamersPlane.api/ssl/gamersplane.local.pem
    SSLCertificateKeyFile /var/www/GamersPlane.api/ssl/gamersplane.local.key
    SSLProtocol all -SSLv2 -SSLv3
    SSLHonorCipherOrder on
    SSLCipherSuite 'HIGH:!aNULL:!eNULL:!EXP:!DES:!MD5:!PSK:!RC4:!SRP:!DSS:!CAMELLIA:!SHA'
    # depending on apache version also useful options:
    SSLCompression off
    SSLInsecureRenegotiation off
</VirtualHost>

相关内容