Let’s Encrypt免费证书SSL申请、搭建、配置HTTPS 教程

Let's Encrypt是一款永久免费的SSL证书,可以完全用于很多想要网站支持HTTPS又不想浪费金钱的站长们,并且Let's Encrypt还支持“*”通配符域名,也就是我们所说的支持泛解析HTTPS了。

 

Let's Encrypt 是一个免费、开放,自动化的证书颁发机构,由 ISRG(Internet Security Research Group)运作。ISRG 是一个关注网络安全的公益组织,其赞助商包括 Mozilla、Akamai、Cisco、EFF、Chrome、IdenTrust、Facebook等公司。ISRG 的目的是消除资金和技术领域的障碍,全面推进网站从HTTP到HTTPS过度的进程。目前,包括FireFox、Chrome在内的主流浏览器都已经支持Let's Encrypt证书。

 

我的服务器环境是Linux(Centos6.5 64位)+Nginx+PHP+Mysql;其它操作系统也可以用此教程的,毕竟很多都是相通的。具体操作如下:

 

一、申请、安装、配置证书

这里其实建议大家先去官网:https://certbot.eff.org 看一下,毕竟官网简单多了!我这里是因为我的服务器用不了官网上所说的方法。

 

1、下载“letsencrypt-auto”脚本

从项目地址先下载“letsencrypt-auto”脚本,地址也很多,这里以github为主:

# 选择下载路径,我这里下载在/tmp目录下  
$ cd /tmp
 
# 下载  
$ git clone https://github.com/letsencrypt/letsencrypt  
  
# 进入所在目录  
$ cd letsencrypt  
  
# letsencrypt-auto 帮助查看  
$ ./letsencrypt-auto --help

或者

# 选择下载路径,我这里下载在/tmp目录下  
$ cd /tmp
 
# 下载  
$ wget  https://github.com/certbot/certbot/archive/master.zip

#解压
$ unzip master.zip

# 重命名
$  mv certbot-master/ certbot
  
# 进入所在目录  
$ cd cerbot  

# letsencrypt-auto 帮助查看  
$ ./letsencrypt-auto --help

或者

wget https://dl.eff.org/certbot-auto
sudo mv certbot-auto /usr/local/bin/certbot-auto
sudo chown root /usr/local/bin/certbot-auto
sudo chmod 0755 /usr/local/bin/certbot-auto

 

2、创建、获取证书

$ certbot-auto certonly --webroot -w /home/wwwroot/huichengffwp/wordpress -d www.huichengff.com -d huichengff.com

 

如果一直出现了“Creating virtual environment...“和”Installing Python packages...”不走了,卡在这里。具体请查看:https://www.fujieace.com/jingyan/installing-python-packages.html

 

最终得到结果:

Let's Encrypt

证书存放路径:/etc/letsencrypt/live/www.domain.com/

fullchain.pem:包含服务器证书的全部证书链文件

privkey.pem:服务器证书对应的私钥

cert.pem:申请的服务器证书文件

chain.pem:除服务器证书外,浏览器解析所需的其他全部证书,比如根证书和中间证书

 

二、Nginx配置

我们需要让Nginx开启443端口来支持SSL,nginx 443端口区域配置如下:

server {

       listen       443 ssl;
       server_name  huichengff.com,www.huichengff.com;
        
       
         ssl_certificate       /etc/letsencrypt/live/www.huichengff.com/fullchain.pem;
         ssl_certificate_key  /etc/letsencrypt/live/www.huichengff.com/privkey.pem;
        
        ssl_session_cache    shared:SSL:1m;
        ssl_session_timeout  5m;
    
        ssl_ciphers  HIGH:!aNULL:!MD5;
        ssl_prefer_server_ciphers  on;

        ssl_protocols TLSv1 TLSv1.1 TLSv1.2;   
......
        }

 

还需要做一个301跳转,让http跳转到https,nginx 80端口区域配置如下:


server {
    listen   80;
    server_name huichengff.com,www.huichengff.com;
    return 301 https://$server_name$request_uri;
......;
}

 

重启Nginx,现在网站已经可以成功访问HTTPS了,我们的SSL证书就已经做好了。

 

三、证书续期

由于Let's Encrypt的SSL证书免费只支持90天,也就是三个月,三个月到期后必须要重新续约,否则SSL证书就失效了。续期官网也讲得很明白了,就两种方法:

 

1、要到期的时候,手工执行命令:

/usr/local/bin/certbot-auto renew

 

2、crontab定时任务自动续期:

我们建议每天运行两次(在您的证书需要续订或撤销之前,它不会执行任何操作,但定期运行会使您的站点有机会保持在线状态,案例a由于某种原因,我们发生了加密启动的撤销。请在一小时内为您的续订任务选择一个随机分钟。

0 0,12 * * * python -c 'import random; import time; time.sleep(random.random() * 3600)' && /usr/local/bin/certbot-auto renew
付杰
  • ¥ 1999.9元
  • 市场价:8999元
  • ¥ 49.0元
  • 市场价:199.0元
  • ¥ 79.0元
  • 市场价:99.0元
  • ¥ 598.0元
  • 市场价:2980.0元

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: