apache - 在 Ubuntu 14.04/Apache2 上为 Vhost 启用 SSL

标签 apache ssl

我正在尝试在我的 Ubuntu 服务器上的站点上启用 SSL。我在 Internet 上到处都发现了几乎相同的几个命令,它看起来非常简单,但出于某种原因我似乎无法正确使用。

这是我的步骤(所有操作均以 root/sudo 权限完成)。

启用 SSL 模块

a2enmod ssl

为 Apache 和用户/站点所有者有权访问的我的 key 创建一个 Controller

sudo mkdir /etc/apache2/ssl

使用所属域的详细名称制作所需的 key

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上类。 (我添加的附加行是从此处找到的 digital ocean 教程中建议的: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 配置是这里的罪魁祸首是有道理的,我似乎无法弄清楚我到底在哪里犯了错误。

最佳答案

假设您发布的代码来自 default-ssl.conf,试试这个:

a2dissite default-ssl.conf

然后

a2ensite default-ssl.conf

然后

service apache2 reload

关于apache - 在 Ubuntu 14.04/Apache2 上为 Vhost 启用 SSL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37335207/

相关文章:

Apache 重写 : favicon in %{HTTP_HOST} directory

node.js - Node 。根据访问的 IP 服务提供不同的自签名证书

c# - 如何在 .NET SslStream 中为客户端身份验证指定接受的证书

ssl - 使用 nginx 配置为我的服务器上的单个目录强制使用 https

apache - 在亚马逊 VPC 上设置多个 SSL 证书

apache - 使用 Apache mod 重写更改 Joomla 中的站点 URL

php - 我可以使用 .htpasswd 来保护不存在的目录(虚拟 m​​od_rewrite 目录)吗?

java - 明文连接

python - 无法在 Apache Web 服务器上运行 Python 脚本 (Windows 7)

php - 在 Apache 上使用 PHP 进行长轮询