lighttpd配置https访问
本文介绍了如何在lighttpd上配置https访问,使用Let’s Encrypt获取免费SSL证书,以及自动更新证书
by kowen
安装openssl
|
|
执行以下命令看到有(ssl)即代表成功
使用Let’s Encrypt获取免费ssl证书
let’s encrypt是比较流行的一个免费ssl证书颁发机构,我们使用简易的脚本来获取,见参考资料1
建立目录,下载脚本
12345mkdir letsencryptcd letsencryptwget https://raw.githubusercontent.com/xdtianyu/scripts/master/lets-encrypt/letsencrypt.confwget https://raw.githubusercontent.com/xdtianyu/scripts/master/lets-encrypt/letsencrypt.shchmod +x letsencrypt.sh修改配置文件letsencrypt.conf,把 DOMAIN_KEY DOMAIN_DIR DOMAINS 三个参数改为你自己的信息,注意把LIGHTTPD=TRUE前的#号删除,否则不能生成pem文件。比如:
123456ACCOUNT_KEY="letsencrypt-account.key"DOMAIN_KEY="kowen.cn.key"DOMAIN_DIR="/var/www/blog-public"DOMAINS="DNS:kowen.cn,DNS:www.kowen.cn"\#ECC=TRUELIGHTTPD=TRUE
注意:需要已经绑定DOMAINS的域名到 DOMAIN_DIR 指定的目录,即通过 http://kowen.cn http://www.kowen.cn 可以访问到 /var/www/blog-public 目录,用于域名的验证.否则会出现错误
- 执行命令生成一系列文件1./letsencrypt.sh letsencrypt.conf
里面有两个lighttpd用到的文件:
lets-encrypt-x3-cross-signed.pem和kowen.pem,其中kowen.pem是lighttpd配置文件中的ssl.pemfile,lets-encrypt-x3-cross-signed.pem是ssl.ca-file
配置lighttpd
通过编辑配置文件 /etc/lighttpd/lighttpd.conf来启用ssl,有几种方式可供选择。配置完成后要重启lighttpd服务生效。
让服务器仅提供https访问,全局设置中添加ssl配置,更改服务端口为443
1234ssl.engine = "enable"ssl.pemfile = "/root/letsencrypt/kowen.pem"ssl.ca-file = "/root/letsencrypt/lets-encrypt-x3-cross-signed.pem"server.port = 443 #将原来的端口改为443不改变原配置,添加443端口访问
12345$SERVER["socket"] == ":443" {ssl.engine = "enable"ssl.pemfile = "/etc/lighttpd/certs/www.example.com.pem"ssl.ca-file = "/etc/lighttpd/fullchain.pem"}设置443端口为新的虚拟主机
123456$SERVER["socket"] == ":443" {server.document-root = "/srv/ssl" # use your ssl directory heressl.engine = "enable"ssl.pemfile = >"/etc/lighttpd/certs/www.example.com.pem"ssl.ca-file = "/etc/lighttpd/fullchain.pem"}为不同的虚拟主机配置不同的证书文件
12345678$HTTP["host"] == "www.example.org" {ssl.pemfile = "/etc/lighttpd/certs/www.example.org.pem"sl.ca-file = "/etc/lighttpd/fullchain.pem"}$HTTP["host"] == "mail.example.org" {ssl.pemfile = "/etc/lighttpd/certs/mail.example.org.pem"sl.ca-file = "/etc/lighttpd/fullchain.pem"}
自动每月更新证书
Let’s Encrypt有有效期,需要续期才能继续使用
编辑定时任务
添加以下任务,根据你的Letsencrypt脚本目录进行相应修改
重定向http服务到https(如果需要)
首先要在配置中添加重定向组件:
然后配置虚拟主机80端口重定向到https服务:
也可以重定向所有端口到对应https服务: