免費SSL證書申請使用Let's Encrypt。html
一、Let's Encrypt是國外一個公共的免費SSL項目,由 Linux 基金會託管,由Mozilla、思科、Akamai、IdenTrust和EFF等組織發起。
二、Let's Encrypt證書有效期三個月,每三個月須要續簽證書。
三、Let's Encrypt註冊主域名認證頻率20個/周,同一域名重複認證 5次/周。nginx
Linxu下可使用certbot作簽名證書。web
certbot的官網地址https://certbot.eff.org/json
一、工具準備api
wget https://dl.eff.org/certbot-auto chmod a+x ./certbot-auto
certbot的兩種工做方式:bash
(1)、 standalone 方式: certbot 會本身運行一個 web server 來進行驗證。若是咱們本身的服務器上已經有 web server 正在運行 (好比 Nginx 或 Apache ),用 standalone 方式的話須要先關掉它,以避免衝突。服務器
(2)、webroot 方式: certbot 會利用既有的 web server,在其 web root目錄下建立隱藏文件, Let’s Encrypt 服務端會經過域名來訪問這些隱藏文件,以確認你的確擁有對應域名的控制權。session
二、使用certbot-auto命令,生成證書app
./certbot-auto certonly --webroot -w /usr/local/nginx/html/ -d aaa.sunwukong.cn -d bbb.sunwukong.cn -d ccc.sunwukong.cn -d dddd.sunwukong.cn
/usr/local/nginx/html/ 是nginx的web目錄工具
aaa.suwukong.cn是須要申請證書的域名,能夠填寫多個子域名。這裏換成你本身的域名。
三、命令執行過程當中須要輸入郵箱地址,確認等信息。直接輸入Y或YES。
四、執行完成後生成證書以下:
# tree /etc/letsencrypt/ /etc/letsencrypt/ ├── accounts │ ├── acme-staging-v02.api.letsencrypt.org │ │ └── directory │ └── acme-v02.api.letsencrypt.org │ └── directory │ └── 009533753e7a6b7f6b27db646b9327da │ ├── meta.json │ ├── private_key.json │ └── regr.json ├── archive │ └── mapp.sunwukong.cn │ ├── cert1.pem │ ├── chain1.pem │ ├── fullchain1.pem │ └── privkey1.pem ├── csr │ └── 0000_csr-certbot.pem ├── keys │ └── 0000_key-certbot.pem ├── live │ └── mapp.sunwukong.cn │ ├── cert.pem -> ../../archive/mapp.sunwukong.cn/cert1.pem │ ├── chain.pem -> ../../archive/mapp.sunwukong.cn/chain1.pem │ ├── fullchain.pem -> ../../archive/mapp.sunwukong.cn/fullchain1.pem │ ├── privkey.pem -> ../../archive/mapp.sunwukong.cn/privkey1.pem │ └── README ├── renewal │ └── mapp.sunwukong.cn.conf └── renewal-hooks ├── deploy ├── post └── pre
五、Nginx配置
server { listen 443 ssl; server_name mapp.sunwukong.cn; ssl_certificate /etc/letsencrypt/live/mapp.sunwukong.cn/fullchain.pem; ssl_certificate_key /etc/letsencrypt/live/mapp.sunwukong.cn/privkey.pem; ssl_session_timeout 5m; ssl_protocols TLSv1 TLSv1.1 TLSv1.2; ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4; ssl_prefer_server_ciphers on; location / { root html; index index.html index.htm; } location /api/ { proxy_pass http://127.0.0.1:8080; } location = /favicon.ico { log_not_found off; access_log off; } error_page 500 502 503 504 /50x.html; location = /50x.html { root html; } }
六、啓動nginx或從新加載
nginx -s reload
七、訪問驗證