我正在尝试设置一个自签名 SSL 证书,以便我可以使用 SSL 开发我的应用程序(这样我最终就可以让我的网站使用 SSL 运行......)。我创建了一个带有无头 API(Lumen)的 Angular 网站,并尝试使用 ServerFault 中的一个问题设置一个多域 SSL 证书:
测试命令已检查完毕,因此我尝试使用以下 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>