我试图在我的Ubuntu服务器上的网站上启用SSL。我在互联网上到处都发现了几乎相同的命令,看起来真的很直接,但由于某种原因,我似乎无法做到正确。
继承我的步骤(所有步骤都以root身份/以sudo权限完成)
启用SSL模块
a2enmod ssl
为我的密钥创建一个导管,Apache和用户/网站所有者有权
sudo mkdir /etc/apache2/ssl
使用所属域名的详细名称制作所需的密钥
sudo openssl req -x509 -nodes -days 365 -newkey rsa:2048 \
-keyout /etc/apache2/ssl/example.key -out /etc/apache2/ssl/example.crt
我为此网站制作了一个现有的.conf文件,如下所示:
(我还将我的/ home目录设置为web目录)
<VirtualHost *:80>
DocumentRoot /home/user
<Directory /home/user>
AllowOverride All
</Directory>
ServerName example.com
ServerAlias www.example.com
ErrorLog ${APACHE_LOG_DIR}/example.com.error.log
CustomLog ${APACHE_LOG_DIR}/example.com.access.log common
AddType application/x-httpd-php .php
<Files 'xmlrpc.php'>
Order Allow,Deny
deny from all
</Files>
</VirtualHost>
我尝试使用以下.conf文件添加,替换,放置之前/之后,无法使https://example.com生效。 (我添加的其他行是从数字海洋的教程中提出的:https://www.digitalocean.com/community/tutorials/how-to-create-a-ssl-certificate-on-apache-for-ubuntu-14-04
<IfModule mod_ssl.c>
<VirtualHost *:443>
DocumentRoot /home/user
<Directory /home/user>
AllowOverride All
</Directory>
ServerName example.com
ServerAlias www.example.com
SSLEngine on
SSLCertificateFile /etc/apache2/ssl/example.crt
SSLCertificateKeyFile /etc/apache2/ssl/example.key
<FilesMatch "\.(cgi|shtml|phtml|php)$">
SSLOptions +StdEnvVars
</FilesMatch>
<Directory /usr/lib/cgi-bin>
SSLOptions +StdEnvVars
</Directory>
BrowserMatch "MSIE [2-6]" \
nokeepalive ssl-unclean-shutdown \
downgrade-1.0 force-response-1.0
BrowserMatch "MSIE [17-9]" ssl-unclean-shutdown
ErrorLog ${APACHE_LOG_DIR}/example.com.error.log
CustomLog ${APACHE_LOG_DIR}/example.com.access.log common
AddType application/x-httpd-php .php
<Files 'xmlrpc.php'>
Order Allow,Deny
deny from all
</Files>
</VirtualHost>
</IfModule>
该网站之前已启用,因此我没有必要运行a2ensite命令,但我确实已确保并且该网站已启用。然后我重新启动了apache
service apache2 restart
然后转到https://example.com并且我的SSL没有运气。
我意识到我正在关注的教程是更新默认的apache文件而我正在尝试创建另一个虚拟主机,因此它有点不同,但我只是创建一个额外的虚拟主机,我想它会与添加额外的.conf文件完全相同。
网站在没有SSL的情况下运行良好,所以我的apache配置在这里是罪魁祸首是有道理的,我似乎无法弄明白我在哪里犯了错误。任何帮助都会非常感谢,谢谢!
答案 0 :(得分:0)
假设您发布的代码来自default-ssl.conf,请尝试:
a2dissite default-ssl.conf
然后
a2ensite default-ssl.conf
然后
service apache2 reload
答案 1 :(得分:0)