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
4 – a2ensite
用于新的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
这个答案是基于这个答案。