在Centos和Nginx中配置部署Let's Encrypt

前端之家收集整理的这篇文章主要介绍了在Centos和Nginx中配置部署Let's Encrypt前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

查看自己的服务器配置:CentOS release 6.5 (Final)
命令: cat /etc/issue 或cat /etc/redhat-release
查看系统多少位:getconf LONG_BIT

一、配置Nginx
首先安装系统缺少的包:

yum -y install gcc gcc-c++ make libtool zlib zlib-devel openssl openssl-devel pcre pcre-devel

安装稳定版的Nginx
wget http://nginx.org/download/nginx-1.10.2.tar.gz
下载到/usr/local目录下

tar –zxvf Nginx-1.10.2.tar.gz

进入Nginx 文件夹目录输入以下命令:

./configure --prefix=/usr/local/Nginx1.10 --with-http_stub_status_module --with-http_ssl_module

(后面两项是Nginx缺少http_ssl_module模块,配置ssl后Nginx启动失败,提示一下错误Nginx: [emerg] the “ssl” parameter requires ngx_http_ssl_module in /usr/local/Nginx/conf/Nginx.conf)
–prefix=PATH : 指定Nginx的安装目录。默认 /usr/local/Nginx
–with-http_ssl_module : 使用https协议模块。默认情况下,该模块没有被构建。前提是openssl与openssl-devel已安装
–with-http_stub_status_module : 用来监控 Nginx 的当前状态
配置后输入以下命令:

make && make install

安装后启动项目:进入sbin目录
启动:./Nginx
关闭./Nginx –s stop
考虑到安装let’s Encrypt需要占用80端口,可以先关闭Nginx
二、 如果已经安装过Nginx,但是未配置ngx_http_ssl_module模块
需要重新配置:

./configure --prefix=/usr/local/Nginx1.10 --with-http_stub_status_module --with-http_ssl_module

配置完成后,需要安装make,不用运行make install(会被覆盖安装)
将之前安装的Nginx备份
cp Nginx Nginx.bak
停止Nginx
将重新编译完成的Nginx覆盖原有的Nginx

cp ./objs/Nginx /usr/local/Nginx1.10/sbin/

然后启动重新查看是否添加成功

/usr/local/Nginx1.10/sbin/Nginx -V

三、 配置Let‘s Encrypt
系统要求:官方文档上已经写出支持python2.6或2.7的操作系统上,python3.x有望在未来支持;需要使用Root账户安装,有写入文件/etc/letsencrypt,/var/log/letsencrypt,/var/lib/letsencrypt的权限,安装时需要使用80和443端口
首先安装git 和bc,并从github上将代码克隆到本地

sudo yum –y git bc
sudo git clone https://github.com/certbot/certbot /opt/certbot-master

安装所有依赖:

sudo /opt/certbot-master/letsencrypt-auto --help

(安装过程请耐心等待)
绑定域名使用 standalone 的方式来获取证书。这种方式需要把 Nginx 服务停掉,让 standalone 服务器直接占用 80 端口来等待 Let’s Encrypt 服务端的验证。

sudo /opt/certbot-master/letsencrypt-auto --help –standalone –email 邮箱地址(邮箱地址是用来接收紧急通知和找回密钥的) –d 域名

中间会出现界面验证你的邮箱地址是否有效
命令完成后,最新版本的证书位置:/etc/letsencrypt/live/域名/
每个域名一个目录,有以下文件

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

配置Nginx,需要生成dhparam.pem文件

sudo openssl dhparam -out /etc/ssl/certs/dhparam.pem 2048

修改Nginx.conf文件

  1. 修改80端口的监听
server
    {
        listen 80;
        return 301 https://域名$request_uri;
        server_name 域名 域名;
    }
  1. 增加以下代码
server {
        listen 443 ssl;
        server_name 域名;
        ssl_certificate /etc/letsencrypt/live/域名/fullchain.pem;
        ssl_certificate_key /etc/letsencrypt/live/域名/privkey.pem;
        ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
        ssl_prefer_server_ciphers on;
        ssl_dhparam /etc/ssl/certs/dhparam.pem;
        ssl_ciphers 'ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:DHE-DSS-AES128-GCM-SHA256:kEDH+AESGCM:ECDHE-RSA-AES128-SHA256:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA:ECDHE-ECDSA-AES128-SHA:ECDHE-RSA-AES256-SHA384:ECDHE-ECDSA-AES256-SHA384:ECDHE-RSA-AES256-SHA:ECDHE-ECDSA-AES256-SHA:DHE-RSA-AES128-SHA256:DHE-RSA-AES128-SHA:DHE-DSS-AES128-SHA256:DHE-RSA-AES256-SHA256:DHE-DSS-AES256-SHA:DHE-RSA-AES256-SHA:AES128-GCM-SHA256:AES256-GCM-SHA384:AES128-SHA256:AES256-SHA256:AES128-SHA:AES256-SHA:AES:CAMELLIA:DES-CBC3-SHA:!aNULL:!eNULL:!EXPORT:!DES:!RC4:!MD5:!PSK:!aECDH:!EDH-DSS-DES-CBC3-SHA:!EDH-RSA-DES-CBC3-SHA:!KRB5-DES-CBC3-SHA';
        ssl_session_timeout 1d;
        ssl_session_cache shared:SSL:50m;
        ssl_stapling on;
        ssl_stapling_verify on;
        add_header Strict-Transport-Security max-age=15768000;
        # The rest of your server block
        root /path/to/root;
        index index.html index.htm;
        location / {
                try_files $uri $uri/ =404;
        }
}

配置完成后重启Nginx
在谷歌浏览器中输入域名,谷歌浏览器查看详情

或者通过此网址查询https://www.ssllabs.com/ssltest/analyze.html?d=域名

自动续期问题:(注意关闭Nginx)输入
./letsencrypt-auto renew 手动续期会发现提示还未到期,无法续期
可以使用

./letsencrypt-auto renew --force-renewal

强制更新续期
这样的话就显示续期成功 可以写一个脚本,创建个定时任务,定期自动续期。

原文链接:https://www.f2er.com/centos/379418.html

猜你在找的CentOS相关文章