所以我刚刚安装了 let's encrypt ssl 证书,使用命令
sudo certbot --apache -d mysite.org -d mysite.org
但是成功安装后,网站根本无法访问,我使用了网上的一些建议,比如将端口 443 添加到 ports.conf
Listen 443
<IfModule mod_ssl.c>
NameVirtualHost *:443
Listen 443
</IfModule>
将 VirtualHost *:443 块添加到 000-default(尽管我确定我没有使用该配置)
<VirtualHost *:443>
DocumentRoot /var/www/html/mysite
ServerName mysite.org
SSLEngine on
SSLCertificateFile /etc/letsencrypt/live/mysite.org/fullchain.pem
SSLCertificateKeyFile /etc/letsencrypt/live/mysite.org/privkey.pem
</VirtualHost>
我还在我的 apache 中使用 a2enmod ssl 启用了 mod_ssl,禁用了防火墙,并且每次进行更改时都重新启动 apache,但什么也没发生,我的网站仍然无法通过 ssl 访问,浏览器只是说我的网站无法访问。
mysite.org.conf 如下所示(我注释掉了 https 重定向):
<VirtualHost *:80>
ServerName mysite.org
ServerAlias www.mysite.org localhost
ServerAdmin webmaster@localhost
DocumentRoot /var/www/html/mysite
<Directory /var/www/html/mysite>
Options Indexes FollowSymLinks MultiViews
AllowOverride All
Require all granted
</Directory>
ErrorLog ${APACHE_LOG_DIR}/mysite.org-error.log
CustomLog ${APACHE_LOG_DIR}/mysite.org-acces.log combined
#RewriteEngine on
#RewriteCond %{SERVER_NAME} =www.mysite.org [OR]
#RewriteCond %{SERVER_NAME} =localhost [OR]
#RewriteCond %{SERVER_NAME} =mysite.org
#RewriteRule ^ https://%{SERVER_NAME}%{REQUEST_URI} [END,NE,R=permanent]
</VirtualHost>
mysite.org-le-ssl.conf 的样子如下
<IfModule mod_ssl.c>
<VirtualHost *:443>
ServerAdmin [email protected]
ServerName mysite.org
ServerAlias www.mysite.org
DocumentRoot /var/www/html/mysite
SSLCertificateFile /etc/letsencrypt/live/mysite.org/fullchain.pem
SSLCertificateKeyFile /etc/letsencrypt/live/mysite.org/privkey.pem
Include /etc/letsencrypt/options-ssl-apache.conf
</VirtualHost>
</IfModule>
我真的不知道如何解决这个问题,你们能帮帮我吗?
这是结果
sudo netstat -nlp |grep :443
tcp6 0 0 :::443 :::* LISTEN 16258/apache2
tcp6 0 0 :::443 :::* LISTEN 16258/apache2
tcp6 0 0 :::443 :::* LISTEN 16258/apache2
tcp6 0 0 :::443 :::* LISTEN 16258/apache2
tcp6 0 0 :::443 :::* LISTEN 16258/apache2
tcp6 0 0 :::443 :::* LISTEN 16258/apache2
tcp6 0 0 :::443 :::* LISTEN 16258/apache2
wget 命令的结果:
Connecting to mysite.org (mysite.org)|my.public.ip.address|:443... failed: Connection refused.
curl 命令的结果(我的 ubuntu 无法找到 curl 包,所以我在 windows 中执行了此操作)
curl: (56) Recv failure: Connection was reset
是的,我可以通过 http 和我的公共 IP 访问我的网站。
答案1
好吧,我以某种方式解决了它,因此我的路由器配置为将任何访问我的公共 IP 的人的 IP 转发到服务器 IP 端口 80,并且没有配置将 IP 转发到端口 443,添加该配置后,现在我终于可以通过 https 访问该站点了。