Let's Encrypt申请免费https证书并配置nginx

Let’s Encrypt的支持和推广也越来越好了,决定用个人域名来尝试一下。
主要用到了官方certbot工具: https://certbot.eff.org
以ubuntu 16.04和nginx为例子

1.更新依赖并安装certbot

$ sudo apt-get update
$ sudo apt-get install software-properties-common
$ sudo add-apt-repository ppa:certbot/certbot
$ sudo apt-get update
$ sudo apt-get install python-certbot-nginx 

2.验证

sudo certbot --nginx certonly

certonly表示需要自己去配置nginx,过程中会输入邮箱,以及选择你在nginx中配置过的域名。
成功后会提示:

IMPORTANT NOTES:
 - Congratulations! Your certificate and chain have been saved at:
   /etc/letsencrypt/live/example.com/fullchain.pem
   Your key file has been saved at:
   /etc/letsencrypt/live/example.com/privkey.pem
   Your cert will expire on 2018-02-15. To obtain a new or tweaked
   version of this certificate in the future, simply run certbot
   again. To non-interactively renew *all* of your certificates, run
   "certbot renew"
 - Your account credentials have been saved in your Certbot
   configuration directory at /etc/letsencrypt. You should make a
   secure backup of this folder now. This configuration directory will
   also contain certificates and private keys obtained by Certbot so
   making regular backups of this folder is ideal.
 - If you like Certbot, please consider supporting our work by:

   Donating to ISRG / Let's Encrypt:   https://letsencrypt.org/donate
   Donating to EFF:                    https://eff.org/donate-le

此时/etc/letsencrypt/live/example.com/目录下会有

README  cert.pem  chain.pem  fullchain.pem  privkey.pem

3.配置nginx

server {
    listen 443 ssl;
    server_name example.com;

    ssl_certificate     /etc/letsencrypt/live/example.com/fullchain.pem;
    ssl_certificate_key /etc/letsencrypt/live/example.com/privkey.pem;

    ssl_session_cache   shared:SSL:1m;
    ssl_session_timeout 5m;

    ssl_protocols             TLSv1 TLSv1.1 TLSv1.2;
    ssl_ciphers               EECDH+CHACHA20:EECDH+CHACHA20-draft:EECDH+AES128:RSA+AES128:EECDH+AES256:RSA+AES256:EECDH+3DES:RSA+3DES:!MD5;
    ssl_prefer_server_ciphers on;

    location /test {
        default_type application/json;
        return 200 '{"status":"success","result":"nginx json"}';
    }
}

浏览器访问 https://example.com/test

猜你喜欢

转载自blog.csdn.net/wlchn/article/details/78561350