在Centos和Nginx中配置部署Let's Encrypt
来源:互联网 发布:网络传输文件软件 编辑:程序博客网 时间:2024/05/21 00:54
查看自己的服务器配置: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 bcsudo 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文件
- 修改80端口的监听
server { listen 80; return 301 https://域名$request_uri; server_name 域名 域名; }
- 增加以下代码
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
强制更新续期
这样的话就显示续期成功
可以写一个脚本,创建个定时任务,定期自动续期。
- 在Centos和Nginx中配置部署Let's Encrypt
- CentOS 7 Nginx Let’ s Encrypt SSL 证书安装配置
- Centos中使用Let's Encrypt配置SSL证书
- nginx 使用 let's encrypt 配置https
- CentOS Nginx 安装Let’s Encrypt 免费ssl证书
- nginx配置Let's Encrypt免费SSL证书
- CentOS7下Let's Encrypt Nginx配置SSL证书
- Let's Encrypt申请免费https证书并配置nginx
- 如何在Ubuntu 14.04中利用Let's Encrypt保障Nginx安全
- 在CentOS下使用Let's Encrypt获取证书
- 使用Go和Let's Encrypt证书部署HTTPS
- OneinStack自动部署Let's Encrypt证书
- OneinStack自动部署Let's Encrypt证书
- 网站升级HTTPS,免费SSL证书Let’s Encrypt安装使用教程:Apache和Nginx配置方法
- 免费SSL证书 之Let’s Encrypt申请与部署(Windows Nginx)
- centos7下docker部署nginx使用let's encrypt免费证书
- Linux CentOS 7 下 Nginx 安装使用 Let’ s Encrypt 证书的完整过程
- Let's Encrypt: 为CentOS/RHEL 7下的nginx安装https支持-具体案例
- Android高效率实现广告图片循环播放,手把手教会你实现效果,项目中直接使用
- eclipse报: Could not resolve archetype org.apache.maven.archetypes:maven-archetype-webapp:1.0 错误
- 【项目1-复数结构体】
- 欢迎使用CSDN-markdown编辑器
- kafka文章链接
- 在Centos和Nginx中配置部署Let's Encrypt
- open edx 邮件激活
- 路由配置与管理——RIP路由配置与管理1
- 调用相机拍照功能
- javascript学习思路
- android ANR产生情况、发生原因及解决办法
- 在dos窗口中的一行不断刷新显示时间的代码(清除dos窗口内容)
- 如何解决Java通过JDBC访问MySQL时SSL连接告警问题
- qt 多个字符串 序列化到文件注意事项。