nginx免费SSL证书申请及配置
Let's Encrypt是一个公共的免费SSL项目,由 Linux 基金会托管,它的来头不小,由Mozilla、思科、Akamai、IdenTrust和EFF等组织发起,目的就是向网站自动签发和管理免费证书,以便加速互联网由HTTP过渡到HTTPS,目前Facebook等大公司开始加入赞助行列。
个人站点和小型应用的最佳选择,缺点在于有效期为90天,但我们可以用计划任务配置自动续期。
那么我们开始安装, 假设我的域名为:163.org
1、克隆代码
git clone https://github.com/letsencrypt/letsencrypt # 没有git的先安装git # yum install git # apt-get install git
2、安装
cd letsencrypt ./letsencrypt-auto certonly --standalone --email admin@163.org -d 163.org -d www.163.org 命令解析 --standalone 需要手动关闭占用443端口的程序,此命令会占用443端口进行验证 --email admin@163.org 填写您的Email -d 163.org 需要使用ssl的域名(必须是当前主机绑定的地址,否则验证失败。)
3、配置
在完成Let's Encrypt证书的生成之后,我们会在"/etc/letsencrypt/live/163.org/"域名目录下有4个文件,这就是生成的密钥证书文件。
cert.pem - Apache服务器端证书
chain.pem - Apache根证书和中继证书
fullchain.pem - Nginx所需要ssl_certificate文件
privkey.pem - 安全证书KEY文件
如果我们使用的Nginx环境,那就需要用到fullchain.pem和privkey.pem两个证书文件
# nginx.conf 配置文件中加入生成的证书
server {
server_name 163.org;
listen 443;
ssl on;
ssl_certificate /etc/letsencrypt/live/163.org/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/163.org/privkey.pem;
}
ps:在Nginx环境中,只要将对应的ssl_certificate和ssl_certificate_key路径设置成对应的文件路径就可以。
不要移动和复制文件,因为续期的时候还会在这个文件生成证书。
4、Let's Encrypt免费SSL证书有效期
Let's Encrypt证书是有效期90天的,需要手工更新续期。
* * * * 1 /var/www/letsencrypt/letsencrypt-auto renew
将此命令添加到定时任务中即可自动续期。
完