阿里云centos环境之Let's Encrypt SSL证书配置十一
阿里云centos环境之Let's Encrypt SSL证书配置<十一>
1.目标
Let's Encrypt是国外一个公共的免费SSL项目。这里记录的是可执行的生成免费SSL证书Let’s Encrypt证书的过程。是手动配置的的流程。Python版本要求是2.7以上。
Python版本查看:
python -V
结果是:Python 2.7.5
操作系统信息查看:
cat /etc/redhat-release
结果是:CentOS Linux release 7.4.1708 (Core)
2.证书生成
进入/home/soft/ssl目录。没有目录的可自行创建。
执行命令
git clone https://github.com/letsencrypt/letsencrypt
cd letsencrypt
./letsencrypt-auto certonly --manual -d cas.zjclxny.com --email chenyuan122912@sina.com
其中最后一条命令:“--manual”是指定手动配置。"-d"指定域名,“--email”指定我的邮件,用户接收Let's Encrypt的邮件通知。
执行结果如下:
1.Are you OK with your IP being logged?
填“Y”
2.
-------------------------------------------------------------------------------
Create a file containing just this data:qrRbH9D69MdgXfBiNCPXKFaBw_-3nT0OJ-cpzMfUIh8.Dbly8kd-5TCo6km7-P5pyqBAeX70VPxt-UA2d9OrJCcAnd make it available on your web server at this URL:http://cas.zjclxny.com/.well-known/acme-challenge/qrRbH9D69MdgXfBiNCPXKFaBw_-3nT0OJ-cpzMfUIh8
确保访问http://cas.zjclxny.com/.well-known/acme-challenge/qrRbH9D69MdgXfBiNCPXKFaBw_-3nT0OJ-cpzMfUIh8域
名有访问到值。不论你用什么技术做服务器。(当然必需在生成证书的服务器上)
这里可以使用nginx做代理服务器,端口是80,这个“.well-known/acme-
challenge/qrRbH9D69MdgXfBiNCPXKFaBw_-3nT0OJ-cpzMfUIh8”目录需要自己创建,内容就
是“qrRbH9D69MdgXfBiNCPXKFaBw_-3nT0OJ-cpzMfUIh8.Dbly8kd-5TCo6km7-P5pyqBAeX70VPxt-UA2d9OrJCc”。每
次生成证书这些值都不一样的。
其实只要在指定服务器上,能正常访问url即可。使用什么做web服务器都可以。
3.证书位置
所有版本已申请的证书放在 /etc/letsencrypt/archive下,/etc/letsencrypt/live是指向最新版本的符号链接。web server中关于
证书的配置建议指向 live 目录下的文件,以免证书更新后还需要更改配置。
每个域名一个目录,主要包含以下几个文件:
cert.pem 申请的服务器证书文件
privkey.pem 服务器证书对应的私钥
chain.pem 除服务器证书外,浏览器解析所需的其他全部证书,比如根证书和中间证书
fullchain.pem 包含服务器证书的全部证书链文件
证书申请成功后会提示证书的文件路径,以及证书到期时间
证书申请有频率限制
1.注册IP限制:每IP每3个小时不超过10次
2.域名数量限制:每个域名(包含子域名)每7天不超过5个
英文好的可直接参考官网限制说明:官网证书申请限制
4.证书安装
4.1.配置Nginx
sudo openssl dhparam -out /etc/ssl/certs/dhparams.pem 2048
结果如下:
说明生成成功。
server {listen 443 ssl;server_name www.saxieyu.com;ssl_certificate /etc/letsencrypt/live/www.saxieyu.com/fullchain.pem;ssl_certificate_key /etc/letsencrypt/live/www.saxieyu.com/privkey.pem;ssl_dhparam /etc/ssl/certs/dhparams.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_prefer_server_ciphers on;……}
说明:
server {listen 80;server_name www.saxieyu.com;return 301 https://$server_name$request_uri;}
400 Bad Request
The plain HTTP request was sent to HTTPS port
重启nginx。在sbin目录 下执行“./nginx -s reload”。如果提示提示“nginx: [emerg] the "ssl" parameter requires ngx_http_module”错误,是因为nginx缺少http_ssl_module模块.
./configure
--with-pcre=/usr/local/pcre-8.39
--with-zlib=/usr/local/zlib-1.2.11
--with-openssl=/usr/local/openssl-1.0.1t
--with-http_stub_status_module
--with-http_ssl_module
2.如果已经安装好nginx,不想重新安装
./nginx -V
查看目前已经安装的模块。
由于我已经安装了http_ssl_module模块,所以显示的比较多。
./configure --prefix=/usr/local/nginx --with-http_stub_status_module --with-http_ssl_module
将http_ssl_module模块编译到现在模块中
make
执行完毕后,不要进行make install,否则就是覆盖安装
然后备份原有已安装好的nginx
1.将整个/usr/local/nginx目录备份
3.进入源码目录nginx-1.13.6
cp -r ./objs/nginx /usr/local/nginx/sbin/
4.再查看nginx已经安装的模块
./nginx -V
2.2如果源码已经删掉
./nginx -V
tar -zxvf nginx-1.13.6.tar.gz
进入目录
3)将已经安装的模块也编译一下
./configure --prefix=/usr/local/nginx --with-http_stub_status_module --with-http_ssl_module --这里填入已经安装过的模块
6).进入源码目录nginx-1.13.6
cp -r ./objs/nginx /usr/local/nginx/sbin/
7).再查看nginx已经安装的模块
./nginx -V
最后重启nginx。
结果如下:
已经变成https协议了。完整配置如下:
#user nobody;
worker_processes 4;#error_log logs/error.log;
#error_log logs/error.log notice;
#error_log logs/error.log info;#pid logs/nginx.pid;events {worker_connections 1024;
}http {include mime.types;include vhost/*.conf;default_type application/octet-stream;#log_format main '$remote_addr - $remote_user [$time_local] "$request" '# '$status $body_bytes_sent "$http_referer" '# '"$http_user_agent" "$http_x_forwarded_for"';#access_log logs/access.log main;sendfile on;#tcp_nopush on;#keepalive_timeout 0;keepalive_timeout 65;gzip on;gzip_min_length 1k;gzip_buffers 4 16k;gzip_http_version 1.1;gzip_comp_level 2;gzip_types text/plain application/javascript application/x-javascript text/javascript text/css application/xml application/xml+rss;gzip_vary on;gzip_proxied expired no-cache no-store private auth;gzip_disable "MSIE [1-6]\.";}
vhost目录下子配置如下clxny.conf:
#服务器的集群 upstream cas.com { #服务器集群名字 server www.xxxxny.com:8184;#服务器配置 weight=1是权重的意思,权重越大,分配的概率越大。 server www.xxxxny.com:8182;server youka.xxxxny.com:8185;ip_hash; }server {listen 443 ssl;server_name cas.xxxxny.com;return 301 https://$server_name$request_uri;#charset koi8-r;# root /usr/local/www/xny/;#access_log logs/host.access.log main;ssl_certificate /etc/letsencrypt/live/cas.zjclxny.com/fullchain.pem;ssl_certificate_key /etc/letsencrypt/live/cas.zjclxny.com/privkey.pem;ssl_dhparam /etc/ssl/certs/dhparams.pem;ssl_ciphers 'ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-EXXX...XXX: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_prefer_server_ciphers on;ssl_protocols TLSv1 TLSv1.1 TLSv1.2;ssl_session_cache shared:SSL:10m;ssl_session_timeout 10m;location / {#proxy_pass http://netitcast.com;#proxy_set_header Host $http_host;#proxy_set_header X-Real-IP $remote_addr;#proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;root /usr/local/www/xny;index index.html index.htm;}location = /50x.html {root html;}location /app/ {proxy_pass http://cas.com;proxy_set_header Host $http_host;proxy_set_header X-Real-IP $remote_addr;proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;#root /usr/local/www/xny;index index.html index.htm;}}
4.2 tomcat证书安装
5.在线测试证书正确性
证书完全OK
6.Let's Encrypt免费SSL证书续期
./certbot-auto renew
只用renew的话,会先检查证书是否需要更新,大概是距离到期还有三天或者十几天之内才会执行更新,否则会提示不需要更
0 0 1 * * /home/soft/ssl/letsencrypt/certbot-auto renew>>/home/soft/ssl/letsencrypt/log.txt
补充:
Nginx 配置Http和Https共存
server {listen 80 default backlog=2048;listen 443 ssl;server_name wosign.com;root /var/www/html;ssl_certificate /usr/local/Tengine/sslcrt/ wosign.com.crt;ssl_certificate_key /usr/local/Tengine/sslcrt/ wosign.com .Key;}
ssl写在443端口后面。这样http和https的链接都可以用
参考文章:
Let's Encrypt SSL证书配置
免费SSL证书Let’s Encrypt安装使用教程:Apache和Nginx配置SSL
阿里云centos环境之Let's Encrypt SSL证书配置十一相关推荐
- 阿里云centos环境之vsftpd安装(十五)
阿里云centos环境之vsftpd安装(十五) 文章目录 前言 安装 检测 安装 配置文件路径 启动服务器 启动ftp命令: 其它相关命令 停止ftp命令: 重启ftp命令: 设置开机自启动 看是否 ...
- 阿里云centos环境之被dos,syn攻击策略和排查方法,持续更新九
阿里云centos环境之被dos,syn攻击策略和排查方法,持续更新<九> 阿里云centos环境之被dossyn攻击策略和排查方法持续更新九 查看cpu使用情况 查看网络连接情况 检查端 ...
- 阿里云CentOS环境之-实战docker集群swarm(十五)
前言 docker1.12版本之前版本配置 准备工作 开始 拉取swarm 开放2375远程访问端口 创建集群的token 向集群里添加结点 查看集群里有哪些结点 创建管理者容器 使用集群 离开集群 ...
- 阿里云centos环境之linux上redis安装及踩过的坑(七)
阿里云centos环境之linux上redis安装及踩过的坑<七> 文章目录 阿里云centos环境之linux上redis安装及踩过的坑<七> 第一:下载上传 第二:解压安装 ...
- 阿里云添加二级域名及生成免费ssl证书
阿里云添加二级域名及生成免费ssl证书 一.问题背景 app上架需要绑定域名进行解析,需要提供域名及对应的ssl证书 二.解决方案 1.公司已有域名,生成二级域名和免费ssl证书提供 三.具体操作 1 ...
- 解决 Let’s Encrypt SSL 证书配置错误
解决 Let's Encrypt SSL 证书配置错误"DNS problem: NXDOMAIN looking up A for xxx.com" 一.问题:Let's Enc ...
- 从阿里云“数字证书管理服务”申请免费的SSL证书
最近网站的SSL证书即将到期,之前是从FreeSSL申请的证书,而且是通过OpenSSL自己生成CSR文件的方式申请的证书,操作还是比较繁琐.(具体参考: https://blog.csdn.net/ ...
- 阿里云服务器windows phpstudy wordpress建站ssl证书安装
引言 网上关于如何安装ssl证书的帖子巨多,尝试了很多方法,基本上都无法正确安装.下面再尝试了多次失败以及重装phpstudy后终于成功安装ssl证书. 证书下载 如果你的域名是从阿里云(万网)购买, ...
- 腾讯云轻量型服务器安装Nginx且SSL证书配置实现HTTP和HTTPS连接
因为开发微信小程序需要https连接所以买了一个腾讯云轻量型服务器.在配置之前需要先购买服务器->申请域名->配置解析域名->申请SSL证书.在几分钟前刚实现http和https的网 ...
最新文章
- 石墨烯区块链(3)软件升级
- 【通俗易懂】C语言中,for循环中i++与++i的区别
- ajax请求url 绝对路径与相对路径
- 基于HALCON的模板匹配方法总结
- 年轻人开始“反推荐算法”:算法不讲武德!
- linux挂载lvm
- I.MX6 2G DDR3 16G eMMC
- java中接口可以产生数组吗,java接口Array介绍
- android中怎么录制屏幕内容,手机怎么录屏?5分钟教你怎么录制手机屏幕
- OpenWrt路由器通过Aria2开启迅雷离线下载[图文教程]
- 查找类似图片关键字查找图片
- 2019春节防坑指南之抢票陷阱
- 前馈神经网络练习:使用tensorflow进行葡萄酒种类识别
- 【网络流24题23】火星探险问题
- windows无法连接到某个wifi_Windows无法连接到网络解决方法
- 滴滴二面:Kafka是如何读写副本消息的?
- Third season twenty-third episode,Ross‘s thing on his butt???
- 网页制作用html和sc,实验二:html的基本标签和javasc
- 送货记账软件网络版怎么用
- 如何给生成的exe加图标
热门文章
- Office2007打开word和excel文件速度慢,在两个打开的word文件之间切换的速度慢,如何处理?...
- 管理信息系统【一】之 管理信息系统概论
- 根证书的有效期与服务器SSL证书一样长吗?
- copy.deepcopy()函数深复制
- gks的定义计算机图形学,计算机图形学(概念)
- 03 switch循环语句
- ACM-ICPC 2018 沈阳赛区网络预赛 G. Spare Tire
- 第九回(一):任侠厨子轻解厄围 夜半蹴鞠为泄忿闷
- 算法工程师面试之OOV问题如何解决?
- 听说要发年终奖了,来来来,我们互相伤害