目的

用Apache和let's encrypt配置SSL

版本

Debian 9

Apache 2.4

配置顺序

开启socache_shmcb和ssl模块

$ sudo a2enmod socache_shmcb
$ sudo a2enmod ssl

生成SSL证书

下面命令生成证书。

$ sudo certbot certonly --webroot -w /var/www/html -d hogehoge.info
  • /var/www/html:DocumentRoot(文件根目录)

  • hogehoge.info:域名

生成的证书的存放地址写在“IMPORTANT NOTES:”的下面。

例如:

IMPORTANT NOTES:
 - Congratulations! Your certificate and chain have been saved at:
   /etc/letsencrypt/live/hogehoge.info/fullchain.pem
   Your key file has been saved at:
   /etc/letsencrypt/live/hogehoge.info/privkey.pem
(接续)

修改conf文件

debian版apache的conf在/etc/apache2/sites-enabled/目录。 写这个项目在<VirtualHost *:443>的下面

  • ServerAdmin:服务器管理员的邮箱
  • DocumentRoot:文件根目录的路径
  • ServerName:服务器的名字
  • ServerAlias:服务器的别名
  • ErrorLog:错误日志的路径
  • CustomLog:别的日志的路径
  • SSLEngine:开启ssl
  • SSLCertificateFile:存放fullchain.pem的地方的路径
  • SSLCertificateKeyFile:存放privkey.pem的地方的路径

例如:

<VirtualHost *:443>
ServerAdmin hoge@hoge.com
DocumentRoot /var/www/html

ServerName hogehoge.info
ServerAlias 192.168.xx.xx

ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined

SSLEngine on
SSLCertificateFile  /etc/letsencrypt/live/hogehoge.info/fullchain.pem
SSLCertificateKeyFile /etc/letsencrypt/live/hogehoge.info/privkey.pem
</VirtualHost>

重启Apache

$ sudo service apache2 restart