Ubuntu 16.04 上获取Let‘s Encrypt免费证书

Ubuntu 16.04 上获取Let’s Encrypt免费证书

云服务商:阿里云
服务器:针对Nginx服务器;
假设域名:example.com www.example.com
假设IP:137.137.137.137

域名指向IP地址

这时,ping这个域名就会显示IP地址,说明指向成功。

安装Nginx服务器

sudo apt-get install nginx
sudo service nginx start

这里,浏览器里打开example.com,可以显示nginx欢迎界面,说明安装成功;

安装letsencrypt

sudo apt-get install letsencrypt

签发证书

很简单,直接运行letsencrypt命令即可

sudo letsencrypt certonly --webroot -w /var/www/html -d example.com -d www.example.com

第一次运行时会问你一些你的信息,以后就不会再询问了。

解释一下,certonly是它的子命令,表示只颁发证书。--webroot是它的插件,用于自动验证域名。-w是指定网站的目录,-d是指定目录对应的域名。一个-w后可以跟着多个-d就对应多个域名。可以用多个-w设置多个目录对应不同的域名。这些域名都在一个证书里。

需要注意的是,域名下的\.well-know\acme-challenge\目录下的文件必须要可以访问。这个是Let’s Encrypt用于验证域名所有权的。它会在上面-w参数设置的目录下建立临时文件,然后通过HTTP访问,比如上面的设置就会新建诸如/var/www/html/.well-known/acme-chanllenge/xxxxxxx(xxxxxxx是随机字符),然后通过http://example.com/.well-known/acme-chanllenge/xxxxxxx来验证。如果你的网站是纯HTTPS的,你可以用把这个地址重定向到https://example.com/.well-known/acme-chanllenge/xxxxxxx,可以成功通过验证。

看到Congratulations!就代表成功了,下面我们就可以配置Nginx了。

##配置HTTP服务器
证书所在的地方是/etc/letsencrypt/下,archive里面是所有证书的存档,`keys 里面是所有证书,不过我们不用管,我们需要的证书在live下面,对应网站域名的目录下面就是了。一共有四个文件。

privkey.pem 这是私匙,对应Nginx的ssl_certificate_key选项,或者Apache2的SSLCertificateKeyFile选项。
cert.pem 服务器证书,这个只有Apache2低于2.4.8版本需要,对应SSLCertificateFile选项。

chain.pem 除服务器证书之外的所有证书,对于1.3.7版以上的Nginx对应ssl_trusted_certificate选项,对于低于2.4.8的Apache2对应SSLCertificateChainFile选项。

fullchain.pem 包括上面的服务器证书和其他证书,Nginx对应ssl_certificate选项,2.4.8版以上的Apache2对应SSLCertificateFile。

所以对于我用的Nginx来说,只需要privkey.pem和fullchain.pem这两个就够了。Apache2的话参考设置HTTPS的文章,对应设置上面提到的文件和选项就行了。

在Nginx的server下设置如下响应的ssl选项就行了,如:/etc/nginx/sites-enabled/example.com

##
# You should look at the following URL's in order to grasp a solid understanding
# of Nginx configuration files in order to fully unleash the power of Nginx.
# http://wiki.nginx.org/Pitfalls
# http://wiki.nginx.org/QuickStart
# http://wiki.nginx.org/Configuration
#
# Generally, you will want to move this file somewhere, and start with a clean
# file but keep this around for reference. Or just disable in sites-enabled.
#
# Please see /usr/share/doc/nginx-doc/examples/ for more detailed examples.
##

server {
        listen 443 ssl;
        server_name example.com www.example.com;

        root /var/www/html;
        index index.html index.nginx-debian.html;

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

        location / {
                try_files $uri $uri/ =404;
        }
}

server {
        listen 80;
        server_name example.com www.example.com;

        root /var/www/html;
        index index.html index.nginx-debian.html;

        location / {
                try_files $uri $uri/ =404;
        }
        rewrite ^(.*)$ https://example.com$1 permanent;
}

设置好了别忘了重启Nginx。

续期

#!/bin/sh
letsencrypt renew
systemctl restart nginx

如果有proxy_set_header,需要先注释掉才能成功

server {        
        listen 80;
        server_name example.com www.example.com;

        root /var/www/html;
        index index.html index.nginx-debian.html;

        location / {
                #proxy_set_header X-Real-IP $remote_addr;
                #proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
                #proxy_set_header Host $http_host;
                #proxy_set_header X-NginX-Proxy true;
                #proxy_pass http://127.0.0.1:8080/;
                #proxy_redirect off;
                #try_files $uri $uri/ =404;
        }
        #rewrite ^(.*)$ https://example.com$1 permanent;
}

https://tsukkomi.org/post/get-the-lets-encrypt-certificate-on-ubuntu

  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

袁保康

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值