Ubuntu 16.04什么时候使用/etc/apache2/ssl/apache.crt?

我运行了一些Ubuntu 16.04服务器并在apache2中设置了一个使用(或应该使用)ssl的vhost。

  ServerAdmin myemail@mailhoster.xx ServerName my.domain.name.de DocumentRoot /var/www/mysslsite  Options FollowSymLinks MultiViews AllowOverride All Order allow,deny allow from all  ErrorLog ${APACHE_LOG_DIR}/mysite.ssl.error.log CustomLog ${APACHE_LOG_DIR}/mysite.ssl.access.log combined   

我没有启用标准sites-available / default-ssl.conf。

我现在可以浏览到https://my.domain.name.de并且它要求firefox添加一些exception,如果我没有购买任何证书,这是完全正常的。

但我想知道它应该在哪里使用/ etc / apache2 / ssl /目录中的证书。 我找不到任何配置,告诉它使用它。 我一直以为它会使用来自/ etc / ssl文件夹的东西。

或者我可能没有正确激活SSL?

根据一些手册,SSL证书文件必须放在/etc/apache2/ssl/ ,但它们可以放在不同的文件夹中,具体取决于您自己的配置。

要对您的站点进行HTTPS访问,您必须启用SSLEngine并提供有效的SSL证书 。

为此,您应该使用OpenSSL命令行工具生成自己的证书。 然后,您需要在任何提供商(如COMODO , StarSSL ,您的本地DNS提供商等)validation证书。通常他们提供几个月的免费证书。 关于这种证书生成方式,您可以查看这些指南: 14.04和16.04 。

您也可以使用软件工具Let’s Encrypt 。 从Let’s Encrypt入门页面:

要在您的网站上启用HTTPS,您需要从证书颁发机构(CA)获取证书(一种文件)。 我们的加密是一个CA. 为了从Let’s Encrypt获取您网站域名的证书,您必须certificate对域名的控制权。 使用Let’s Encrypt,您可以使用使用ACME协议的软件来执行此操作,该协议通常在您的Web主机上运行。

我建议你在这个阶段使用Let’s Encrypt。 让我们开始吧。

1 – 安装让我们加密:

 sudo apt install python-letsencrypt-apache 

第二 – 生成证书。 要生成与Apache兼容的SSL证书,只需输入: letsencrypt --apache 。 此命令将启动交互式对话(您必须填写站点的个人数据),并将根据您现有的HTTP.conf文件生成HTTP.conf文件。

您可以使用和一些其他参数,例如letsencrypt --apache certonly将执行与上面相同但不会生成HTTPS.conf文件。

您也可以放置所有必要的参数以避免对话。 根据问题中提供的信息,我们的命令应如下所示:

 sudo letsencrypt --apache certonly --rsa-key-size 4096 --email myemail@mailhoster.xx -d my.domain.name.de 

我们假设您选择最后一种方法。 该命令将生成所有必需的证书文件,它们将放在文件夹/etc/letsencrypt/archive/my.domain.name.de/ 。 这些文件也会被sym链接到文件夹/etc/letsencrypt/live/my.domain.name.de/ 。 这些符号链接将在未来自动更新,因此我们将使用它们。

3 – 配置(手动)您的HTTPS VirtualHost。 根据以上配置文件应如下所示:

   ServerAdmin myemail@mailhoster.xx ServerName my.domain.name.de DocumentRoot /var/www/mysslsite SSLEngine on SSLCertificateFile /etc/letsencrypt/live/my.domain.name.de/cert.pem SSLCertificateKeyFile /etc/letsencrypt/live/my.domain.name.de/privkey.pem SSLCertificateChainFile /etc/letsencrypt/live/my.domain.name.de/chain.pem  Options FollowSymLinks MultiViews AllowOverride All Order allow,deny allow from all  ErrorLog ${APACHE_LOG_DIR}/mysite.ssl.error.log CustomLog ${APACHE_LOG_DIR}/mysite.ssl.access.log combined   

4a2ensite用于新的VirtualHost,以防a2enmod ssl并重启Apache。 而已。 我希望您现在可以通过HTTPS访问您的网站。

5 – 将您的证书更新到未来。 为此,您可以编辑root的Crontab并添加一个作业,该作业将尝试让letsencrypt renew在每周日凌晨3:00尝试letsencrypt renew证书。 输入sudo crontab -e并在底部添加以下行:

 0 3 * * 0 /usr/bin/letsencrypt renew >> /var/log/letsencrypt-renew.log 2>&1 


这个答案是基于这个答案。