我一直在尝试让 Let's Encrypt 证书、密钥和链发挥作用。
但我也做了一些我知道在我意识到该做什么之前不需要做的事情。
端口 443 没有打开,所以我也用“ports.conf”做了一些事情,但我想我已经把它改回原来的样子了。
我修改了default-ssl.conf
并做了一个a2ensite
但正常mywebsite.com.conf
仍然有效。
密钥的文件路径存在错误,因此我修复了该问题并尝试重新启动,apache2
但这才是真正的问题开始的时候。
我尝试了a2dissite
一个和两个conf 文件(普通文件和SSL),但无法让apache 重新启动。
唯一的另一件事是我做了一些我不需要的事情,比如制作 CSR 并将其添加到证书文件中。
这就是它所说的:
● apache2.service - LSB: Apache2 web server
Loaded: loaded (/etc/init.d/apache2)
Drop-In: /lib/systemd/system/apache2.service.d
└─forking.conf
Active: failed (Result: exit-code) since Wed 2017-01-18 06:23:59 PST; 3min 31s ago
Process: 31878 ExecStop=/etc/init.d/apache2 stop (code=exited, status=0/SUCCESS)
Process: 31861 ExecReload=/etc/init.d/apache2 reload (code=exited, status=1/FAILURE)
Process: 30542 ExecStart=/etc/init.d/apache2 start (code=exited, status=0/SUCCESS)
Jan 18 06:22:10 archimedes systemd[1]: apache2.service: control process exited, code=exited status=1
Jan 18 06:22:10 archimedes systemd[1]: Reload failed for LSB: Apache2 web server.
Jan 18 06:23:37 archimedes systemd[1]: Reloading LSB: Apache2 web server.
Jan 18 06:23:38 archimedes apache2[31861]: Reloading web server: apache2 failed!
Jan 18 06:23:38 archimedes apache2[31861]: Apache2 is not running ... (warning).
Jan 18 06:23:38 archimedes systemd[1]: apache2.service: control process exited, code=exited status=1
Jan 18 06:23:38 archimedes systemd[1]: Reload failed for LSB: Apache2 web server.
Jan 18 06:23:59 archimedes apache2[31878]: Stopping web server: apache2.
Jan 18 06:23:59 archimedes systemd[1]: Unit apache2.service entered failed state.
Jan 18 06:27:04 archimedes systemd[1]: Unit apache2.service cannot be reloaded because it is inactive.
然后我看了这里的另一个帖子,有人提到了,sudo reboot
所以我尝试了这个,然后腻子冻结了。但是当我重新打开 putty 时,我能够重新启动apache2
并且现在恢复到正常的 HTTP。
有什么想法我做错了什么吗?
重新将 SSL 添加到启用的站点是一件好事吗?看来443端口现在开放了,这是一件好事。
编辑: Apache2.conf...
Mutex file:${APACHE_LOCK_DIR} default
PidFile ${APACHE_PID_FILE}
Timeout 300
KeepAlive Off
MaxKeepAliveRequests 100
KeepAliveTimeout 5
User ${APACHE_RUN_USER}
Group ${APACHE_RUN_GROUP}
HostnameLookups Off
ErrorLog ${APACHE_LOG_DIR}/error.log
LogLevel warn
IncludeOptional mods-enabled/*.load
IncludeOptional mods-enabled/*.conf
Include ports.conf
<Directory />
Options FollowSymLinks
AllowOverride None
Require all denied
</Directory>
<Directory /usr/share>
AllowOverride None
Require all granted
</Directory>
<Directory /var/www/>
Options Indexes FollowSymLinks
AllowOverride None
Require all granted
</Directory>
还有“mywebsite.com.conf”...
<VirtualHost *:80>
ServerAdmin [email protected]
ServerName mywebsite.com
ServerAlias www.mywebsite.com
DocumentRoot /var/www/html
ErrorLog /var/www/logs/error.log
CustomLog /var/www/logs/access.log combined
<Directory /var/www/html/>
Options Indexes FollowSymLinks MultiViews
AllowOverride all
Order allow,deny
allow from all
</Directory>
</VirtualHost>
答案1
确保您的路由器允许端口 80 和 443。
确保将端口 80 和 443 转发到您的服务器。
确保您的防火墙已打孔:
sudo iptables -A INPUT -p tcp -m tcp --dport 80 -j ACCEPT sudo iptables -A INPUT -p tcp -m tcp --dport 443 -j ACCEPT
为端口 443(以及 80)定义 VirtualHost:
<VirtualHost *:80> ... your code here ... </VirtualHost> <IfModule mod_ssl.c> <VirtualHost *:443> ... your code here ... </VirtualHost> </IfModule>
启用
mod_rewrite
:sudo a2enmod rewrite
定义从 HTTP 到 HTTPS 的重定向,例如:
RewriteCond %{HTTPS} !on RewriteRule ^/?(.*) https://%{SERVER_NAME}/$1 [R=301]
最后重新启动 Apache:
sudo service apache2 restart