【linux】centos6/7 + nginx 利用certbot 申请https证书
没错我又踩坑了。昨晚上搞到十二点半才成功申请。鬼知道OJ服务器是个什么渣渣。
早上才算正式弄好,中间也学了不少东西,记录一下。这次是http转https,所以默认的还是只有80端口。
请务必确保自己的80端口是开的。。否则会GG。
首先贴一下cerbot的网址 https://certbot.eff.org/,你可以去里面选择你的环境然后会有教程。
1、下载Certbot,并且添加权限
wget https://dl.eff.org/certbot-auto
chmod a+x ./certbot-auto
2、关闭nginx服务
sudo service nginx stop
3、使用certbot-auto,生成证书
先说一下自己的坑吧,这里着实坑死我了。
不想看的可以跳过这一段!!!因为很多废话!!
我先百度了一下,是有这样的,
./certbot-auto certonly --standalone --email 你的邮箱 -- agree-tos -d 你的域名
但是我们这个oj的域名有点奇怪,估计是没有,然后会报 certbot: error: unrecognized arguments:。
试了好久,然后我看没有特别有效的解决办法,于是我放弃了。
然后,我又试了手动的方式,结果给了我一个蜜汁challenge,看了官网是有这方面的解释的。

所以我的80端口被占用了,于是我,查看80端口
lsof -i:
杀进程。
kill - 进程id
md杀出问题了。我把数据库杀掉了,结果mysql挂了。

贼慌,还好重启了一下,就好了。
于是我这个也放弃了QAQ。
真的是血泪史,哭唧唧。
最后尝试了一次,这种方式是成功的。
./certbot-auto certonly --webroot -w 你的网站根目录 -d 你的域名
你进入要配置的域名的nginx的conf里面,红色框是根目录,蓝色框就是域名(之前这里是只有80的,我这个截图是修改之后的)

4、查看letsencrypt
这一步成功后就会生成这个目录 /etc/letsencrypt/live/你的域名
这个底下会有这些东西,红框的两个是我们要配置进conf的。

5、配置conf
请在sever下加入这三行
ssl_certificate /etc/letsencrypt/live/你的域名/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/你的域名/privkey.pem;
ssl_trusted_certificate /etc/letsencrypt/live/你的域名/chain.pem;
并且把原来server下的listen 80 去掉改成
listen 443 ssl;
ssl on;
这里慎重提醒!!!
千万不要加listen [::]:443 default_server ipv6only=on,我昨天一直没成功,是因为加了这句话,我也不知道为什么。花花帮我去掉后就可以了。
6、测试并重定向
打开nginx服务
sudo service nginx start
这里先建议测试一下https://你的域名,看是否可以访问,不能再去找原因。我比较顺利这里。就没有问题。qwq
然后测试成功后,做一个80端口重定向,红框部分为你的域名。

7、重启nginx服务器
上面改完之后
sudo service nginx reload
就可以了。
不过!!!!我在这里是出了问题的。证书还是不行,原因是我没有给 /etc/letsencrypt/live/这个里面权限,导致不能访问,所以会失败。
这个就用chmod a+x再给一次权限啦,最好是整个目录都给哦。
后面再把更新证书写一下。有效期是90天,所以需要更新证书的!!!。
update: 更新证书
因为才刚刚上了证书,这么短时间去renew肯定是不行的。所以实操还是不知道效果。这是参考网上的。
1、手动更新
./certbot-auto renew -v
2、自动更新
./certbot-auto renew --quiet --no-self-upgrade
为了避免每90天上来更新一次证书。 我写了个shell脚本执行第二句话,用corntab写了个定时任务。
$touch batch.sh $vim batch.sh
执行一下脚本会发现权限不够,然后如下
$chmod batch.sh
$./batch.sh
就可以运行了。
接下来接入定时任务
$crontab -e
这里是定时的每周一的一点执行这个脚本
* * ./bash.sh
保存以后再执行下面这条命令
$service crond restart
查看执行日志是这样的

可以看到我写的每分钟执行的一个测试文件

虽然又是一次很辛酸的历程,但是知道了nginx的配置,还自己申请了一下。总的还是蛮有(nan)趣(guo)的。
菜鸡又学了一些东西,收获很多。qwq希望对你们有帮助。
【linux】centos6/7 + nginx 利用certbot 申请https证书的更多相关文章
- nginx使用certbot配置https
一般现在的网站都要支持https,即安全的http. 机器:阿里云Ubuntu 16.04.3 LTS 方案一:自己申请证书 配置时需要确保有ssl模块, 之后域名解析下, 之后时申请证书,可以去阿里 ...
- 免费申请 HTTPS 证书,开启全站 HTTPS
作者:HelloGitHub-追梦人物 文中涉及的示例代码,已同步更新到 HelloGitHub-Team 仓库 HTTP 报文以明文形式传输,如果你的网站只支持 HTTP 协议,那么就有可能遭受到安 ...
- 如何申请https证书、搭建https网站
如何申请https证书.搭建https网站 随着国内搜索引擎巨头百度启用全站https加密服务,全国掀起了网站https加密浪潮.越来越多的站点希望通过部署https证书来解决“第三方”对用户隐私的嗅 ...
- nginx 反向代理及 https 证书配置
nginx 反向代理及 https 证书配置 author: yunqimg(ccxtcxx0) 1. 编译安装nginx 从官网下载 nginx源码, 并编译安装. ./configure --pr ...
- Nginx+Tomcat反向代理利用certbot实现https
一.利用Let's Encrypt 免费生成HTTPS证书 1.下载安装certbot(Let's Encrypt ) 2.利用certbot生成证书 3.配置nginx的https证书 安装cerb ...
- Nginx反向代理+负载均衡简单实现(手动申请https证书,申请免费https证书,http强转https)
背景:A服务器(192.168.1.8)作为nginx代理服务器B服务器(192.168.1.150)作为后端真实服务器 现在需要访问https://testwww.huanqiu.com请求时从A服 ...
- letsencrypt证书-使用certbot申请wildcard证书
目录 1. certbot安装 2. 认证方式 3. 运行命令 4. 更新 1:下载 2:配置 3:申请证书 4:续期证书 1. certbot安装 cd /usr/local/src wget ht ...
- 申请https证书需要注意的4大问题
HTTPS证书是什么 https证书是数字证书中的一种,由受信任的数字证书颁发机构CA如[沃通CA]在验证服务器身份后颁发,具有服务器身份验证和数据传输加密 功能,因其要配置在服务器上,所以也称SSL ...
- 阿里云免费申请https证书
申请地址 https://common-buy.aliyun.com/?spm=a2c4e.11153940.blogcont65199.22.30f968210RsUSx&commodi ...
随机推荐
- java反射(二)--反射应用案例
一.反射实例化对象 经过一系列的分析之后发现虽然可以获取Class类的实例化对象,但是依然觉得这个对象的获取意义不是很大,因此可以通过以下几个案例去理解反射的核心意义--反射实例化对象:获取Class ...
- 后端数据推送-EventSource
服务器发送事件(以下简称SSE)是HTML 5规范的一个组成部分,可以实现服务器到客户端的单向数据通信.通过SSE,客户端可以自动获取数据更新,而不用重复发送HTTP请求.一旦连接建立,“事件”便会自 ...
- 同一台机器上有多个Python版本?
有关Python网站上的官方文档,如何在Linux上的同一台机器上安装和运行多个版本的Python? 我可以找到大量的博客帖子和答案,但我想知道是否有“标准”官方方式这样做? 或者这完全取决于操作系统 ...
- 《代码大全2》读书笔记 Week 1
<代码大全2>第一.二.三章 隐喻思维在西方是一个热门的话题,隐喻的认知功能在各个学科正受到越来越多的重视,依照我的理解,其实就是以众所周知或者理解主体熟悉的事物为符号去将新事物.新概念具 ...
- 基于 Scrapy-redis 两种形式的分布式爬虫
基于 Scrapy-redis 两种形式的分布式爬虫 .caret, .dropup > .btn > .caret { border-top-color: #000 !important ...
- 力扣——single number (只出现一次的数字) python实现
题目描述: 中文: 给定一个非空整数数组,除了某个元素只出现一次以外,其余每个元素均出现两次.找出那个只出现了一次的元素. 说明: 你的算法应该具有线性时间复杂度. 你可以不使用额外空间来实现吗? 英 ...
- Java网络编程:IP地址和端口号
1)IP地址 用来标志网络中的一个通信实体的地址.通信实体可以是计算机,路由器等. 2)IP地址分类 IPV4:32位地址,以点分十进制表示,如192.168.0.1 IPV6:128位(16个字节) ...
- oracle 数据库插入中文乱码
一. 查询数据库编码 select userenv('language') from dual; 查询服务器编码 select * from v$nls_parameters; 推出sql查询系统编码 ...
- 【leetcode】996. Number of Squareful Arrays
题目如下: Given an array A of non-negative integers, the array is squareful if for every pair of adjacen ...
- 【leetcode】998. Maximum Binary Tree II
题目如下: We are given the root node of a maximum tree: a tree where every node has a value greater than ...