Http免费升级Https详细步骤【Let’s Encrypt】

1、Let's Encrypt

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

2、安装配置

从项目地址下载 letsencrypt-auto 脚本:

选择下载路径,我这里下载在/data目录下

$ cd /data

# 下载  
$ git clone https://github.com/letsencrypt/letsencrypt 
# 新仓库为:
https://github.com/certbot/certbot

# 进入所在目录  
$ cd letsencrypt  

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

# 第一次安装需要解析txt
$./letsencrypt-auto certonly --preferred-challenges dns --manual  -d *.haokaikai.cn --server https://acme-v02.api.letsencrypt.org/directory

#创建、获取证书:(注意需要停止nginx 80端口服务)
./letsencrypt-auto certonly --standalone --email 邮箱 -d www.xxx.com
得到结果:

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

cert.pem 申请的服务器证书文件 
privkey.pem 服务器证书对应的私钥 
chain.pem 除服务器证书外,浏览器解析所需的其他全部证书,比如根证书和中间证书 
fullchain.pem 包含服务器证书的全部证书链文件

其它命令参数说明:
run:获取并安装证书到当前的Web服务器
certonly:获取或续期证书,但是不安装
renew:在证书快过期时,续期之前获取的所有证书
-d DOMAINS:一个证书支持多个域名,用逗号分隔
--apache:使用 Apache 插件来认证和安装证书
--standalone:运行独立的 web server 来验证
--nginx:使用 Nginx 插件来认证和安装证书
--webroot:如果目标服务器已经有 web server 运行且不能关闭,可以通过往服务器的网站根目录放置文件的方式来验证
--manual:通过交互式方式,或 Shell 脚本手动获取证书

3、Nginx安装配置

server {
    listen 443 ssl;

    server_name sign.tokenview.com;
    ssl on;
    # 修改以下文件(替换成自己的域名)
    ssl_certificate /etc/letsencrypt/live/www.domain.com/fullchain.pem;
    ssl_certificate_key /etc/letsencrypt/live/www.domain.com/privkey.pem;
    ssl_session_timeout 5m;
    ssl_protocols SSLv3 TLSv1;
    ssl_ciphers ALL:!ADH:!EXPORT56:RC4+RSA:+HIGH:+MEDIUM:+LOW:+SSLv3:+EXP;
    ssl_prefer_server_ciphers on;

    location / {
        proxy_pass http://127.0.0.1:8080; #web应用代理跳转url
        proxy_set_header Host $host;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    }
}

# http重定向到https
server {
    listen   80;
    server_name www.domain.com;
    return 301 https://$server_name$request_uri;
}

4、续期

# 强制续期
$>./letsencrypt-auto renew --force-renewal
THE END
分享
二维码
< <上一篇
下一篇>>