
正文
使用Letsencrypt做SSL certificate
提示:扫一扫查出行【扫一扫了解最新限行尾号】
复制提示
为什么要使用Letsencrypt做SSL certificate?
最简单直接的原因是免费。但是免费存在是否靠谱的问题,尤其是对安全要求比较高的网站,需要考虑使用letsencrypt的安全性是否符合你的标准。本文旨在介绍怎么使用letsencrypt做SSL certificate,或者说是letsencrypt学习笔记更适合,对其适用场景没有做过多研究。
从git上下载letsencrypt到服务器上
$ git clone https://github.com/letsencrypt/letsencrypt
进到letsencrypt目录下,使用一下命令来创建以及安装CA
$ ./letsencrypt-auto certonly
$ ./letsencrypt-auto --apache -d domainName
CA的一些文件在?xml version="1.0" encoding="UTF-8" standalone="no"? /etc/letsencrypt 目录下。
这样就可以以https方式访问你指定的域名了。
但是,网站内可能存在一些http请求,浏览器会报错并加载不成功。这里,我的做法是将站内所有的http请求重定向到https请求。我们需要修改apache2的配置文件。
打开000-default.conf文件,
/etc/apache2/sites-enabled/-default.conf
加上
RewriteEngine On
RewriteRule ^/(.*)$ https://domainname/$1 [R,L]
修改tomcat下的server.xml文件
<Connector URIEncoding="UTF-8" port="" protocol="HTTP/1.1"
connectionTimeout=""
compression="on"
compressionMinSize=""
compressableMimeType="application/json,application/javascript,application/xml,image/gif,image/png,text/css,text/html,text/javascript,text/plain,text/xml"
redirectPort=""
proxyPort = "" scheme="https"/>
这样网站所有的请求都指向https请求了。
letsencrypt默认30天内有效,但有renew的命令可以在letsencrypt过期之后更新CA。自动更新CA的脚本如下
#!/bin/sh
if ! /path/to/letsencrypt-auto renew > /var/log/letsencrypt/renew.log >& ; then
echo Automated renewal failed:
cat /var/log/letsencrypt/renew.log
exit
fi
需要在服务器上定期执行这个脚本,可以使用crontab。







