letsencrypt申请SSL证书搭建自己的https服务器

  • • 发表于 8年前
  • • 作者 老子本性天
  • • 4012 人浏览
  • • 14 条评论
  • • 最后编辑时间 8年前
  • • 来自 [技 术]

原创声明:本文为作者原创,未经允许不得转载,经授权转载需注明作者和出处

letsencrypt申请证书

使用命令行工具certbot进行证书的申请。
certbot是个python的工具包,我常用服务器是centos,此处只描述centos上怎么安装和使用。其它的操作系统的可以参见cenrbot官网
certbot位于EPEL库,所以先安装EPEL,yum install epel-release, 然后再安装certbot,yum install certbot, 安装完之后就可以使用certbot命令进行证书相关操作了。
使用nginx做反向代理时,证书的部署问题就手动了,所以使用certbot命令只生成对应域名的证书即可。
certbot certonly —standalone -d example.com -d www.example.com
执行上述命令后,会有界面提示找回邮箱及用户协议,输入邮件,点击同意后,执行完成后会在/etc/letsencrypt/目录下会生成一堆的文件夹。

使用上述命令在对域名进行ssl证书申请时,服务器的80端口要暂时关闭,且域名的解析要正常,否则申请不下来的。

certbot的使用说明详细的就看看官网文档吧。

ssl证书续期的问题

letsencrypt的证书默认是3个月的有效期,需要在到期之前手动续期一下才能继续使用。可以考虑使用crontab定时任务,如每个月去续期一下解决有效期的问题。

30 2 1 * * /usr/bin/certbot renew  >> /var/log/le-renew.log

nginx部署ssl证书

生成dhparam 参数,openssl dhparam -out /etc/ssl/certs/dhparams.pem 2048 ,在后面配置nginx时会需要。
nginx中新建一个ssl站点的配置文件,内容如下:

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

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

    ssl_session_timeout 5m;
    ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
    ssl_ciphers ECDHE-RSA-AES256-GCM-SHA384:ECDHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-SHA384:ECDHE-RSA-AES128-SHA256:ECDHE-RSA-AES256-SHA:ECDHE-RSA-AES128-SHA:DHE-RSA-AES256-SHA:DHE-RSA-AES128-SHA;
    ssl_session_cache shared:SSL:50m;

    ssl_dhparam /etc/ssl/certs/dhparams.pem;
    ssl_prefer_server_ciphers  on;
    location / {
        proxy_pass        http://example.com;
        proxy_set_header   Host             $host;
        proxy_set_header   X-Real-IP        $remote_addr;
        proxy_set_header   X-Forwarded-For  $proxy_add_x_forwarded_for;
    }
}
分享到:
14条评论
Ctrl+Enter
作者

老子本性天

老子本性天

APP:1 帖子:1 回复:3 积分:262

已加入社区[3104]天

主人太懒,签名没设置!

作者详情》
Top