我有一个运行默认的Apache Web服务器的Raspberry Pi。我已经在域example.duckdns.org
(不是真实域)上配置了DuckDNS。我的000-default.conf
的Apache配置如下:
<VirtualHost *:80>
ServerName example.duckdns.org
ServerAdmin webmaster@localhost
DocumentRoot /var/www/html
#LogLevel info ssl:warn
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>
在我的浏览器中访问example.duckdns.org会正确显示默认的apache页面(“有效!”)。现在,我想使用letsencrypt安全地访问我的网站。
我试图启用Stretch backports回购,但是那没用:apt update
不起作用,因为该回购未签名并且我无法对其进行签名。因此,我从主存储库安装了python-certbot-apache
,而不是从backport存储库安装了sudo cerbot --apache
,但是我认为这没有什么区别。
运行<VirtualHost *:80>
ServerName example.duckdns.org
ServerAdmin webmaster@localhost
DocumentRoot /var/www/html
#LogLevel info ssl:warn
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
RewriteEngine on
RewriteCond %{SERVER_NAME} =example.duckdns.org
RewriteRule ^ https://%{SERVER_NAME}%{REQUEST_URI} [END,NE,R=permanent]
</VirtualHost>
会生成以下两个配置文件:
000-default.conf:
<IfModule mod_ssl.c>
<VirtualHost *:443>
ServerName example.duckdns.org
ServerAdmin webmaster@localhost
DocumentRoot /var/www/html
#LogLevel info ssl:warn
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
SSLCertificateFile /etc/letsencrypt/live/example.duckdns.org/fullchain.pem
SSLCertificateKeyFile /etc/letsencrypt/live/example.duckdns.org/privkey.pem
Include /etc/letsencrypt/options-ssl-apache.conf
</VirtualHost>
</IfModule>
000-default-le-ssl.conf
example.duckdns.org
现在,如果我尝试导航到位于https://example.duckdns.org
的站点,我的浏览器将正确地重定向到'Content-Type': 'application/json'
,但是什么也没有发生:浏览器显示超时。我尝试重新启动Raspberry Pi,重新加载并重新启动apache并重做整个过程。
我做错了什么?这是我能想到的最简单的示例,但仍然没有用。是因为Raspberry Pi(3型)吗?
答案 0 :(得分:0)
糟糕,令人尴尬的错误。我忘记了转发SSL端口443。也许这对以后的读者有帮助,所以我将其发布在这里。