背景 我有一台只有一个站点的简单服务器。我想强制使用 SSL。我之前使用自签名证书执行此操作,但现在我获得了 letsencrypt 证书。我使用了自动设置,但当我访问我的站点时,它使用旧证书。
我认为我的问题类似于:尽管我有一个启用站点的文件,但仍然会显示默认的 apache index.html
在这个答案中:https://serverfault.com/a/690668/226403其中一个选项是“如果您希望将其作为您的默认/唯一主机,那么甚至不要理会 VirtualHost 标签,而是在服务器级别应用您的配置”。
问题我如何更改服务器范围的配置?我认为这个服务器范围的配置是使用旧证书的,但我不明白如何更改它?
谢谢!(我的设置是使用 apache 的 Ubuntu VM)
编辑:在 /etc/apache2/ssl 中有旧的 .key 和 .pem 文件,如果我移动这些一切严重损坏并且 Apache 无法启动!
解决方案(至少对我来说是这样)。显然,您可以在 sites-available 和 conf-available 中设置。Lets Encrypt 会自动为您设置 sites-available,但不会为您设置 conf-available。我执行了递归搜索(使用https://stackoverflow.com/questions/16956810/finding-all-files-containing-a-text-string-on-linux):。
$ grep -rnw '/etc/apache2/' -e 'SSLCertificateFile'
在 conf-available 中发现不正确的文件并重新启动 apache sudo service apache2 reload
:。
答案1
如果您有一个现有的、有效的 https 配置,那么/etc/apache2/ssl
您只需要更改相关配置文件的值以指向 letsencrypt 提供的新文件。
例如,example.com 文件将存储在
/etc/letsencrypt/live/example.com/
您需要更改的配置设置是
SSLCertificateFile /etc/letsencrypt/live/example.com/cert.pem
SSLCertificateKeyFile /etc/letsencrypt/live/example.com/privkey.pem
SSLCertificateChainFile /etc/letsencrypt/live/example.com/fullchain.pem
保存文件并重新启动 apache2。