网站Nginx服务安装https免费证书配置一条龙流程

news2024/11/16 11:45:47

搜索小程序   成语典故查询

Let’s Encrypt 安装https免费证书配置

1.http 是一个传输网页内容的协议,比如你看到的 http 开头的网站 www.163.com,其网页上的文字、图片、 CSS 、 JS 等文件都是通过 http 协议传输到我们的浏览器,然后被我们看到。
而 https 可以理解为“ HTTP over SSL/TLS ”,好端端的 http 为什么需要“ over SSL/TLS ”呢,因为 http 是明文传输的,通过http 协议传输的内容很容易被偷看和篡改,为了安全(你肯定不想被人偷看或者篡改网页内容吧,比如网站银行密码什么的。)就为 http 协议再加上了一层 SSL/TLS 安全协议,所以就有了 https

2.如何部署
你只需要有一张被信任的CA(Certificate Authority )也就是证书授权中心颁发的 SSL 安全证书,并且将它部署到你的网站服务器上。一旦部署成功后,当用户访问你的网站时,浏览器会在显示的网址前加一把小绿锁,表明这个网站是安全的,当然同时你也会看到网址前的前缀变成了 https ,不再是 http

3.如果获得 SSL 安全证书
理论上,我们自己也可以签发 SSL 安全证书,但是我们自己签发的安全证书不会被主流的浏览器信任,所以我们需要被信任的证书授权中心( CA )签发的安全证书。而一般的 SSL 安全证书签发服务都比较贵,比如 Godaddy 、 GlobalSign 等机构签发的证书一般都需要20美金一年甚至更贵,不过为了加快推广 https 的普及, EEF 电子前哨基金会、 Mozilla 基金会和美国密歇根大学成立了一个公益组织叫 ISRG ( Internet Security Research Group ),这个组织从 2015 年开始推出了 Let’s Encrypt 免费证书。这个免费证书不仅免费,而且还相当好用,所以我们就可以利用 Let’s Encrypt 提供的免费证书部署 https 了。那么怎么获得 Let’s Encrypt 安全证书,并且将它部署在自己的网站服务器上呢?这就是这篇文章要讲的内容

4.具体操作:
1>.获取certbot客户端
wget dl.eff.org/certbot-aut…
chmod a+x certbot-auto

mac为例 :brew install certbot
brew install certbot
  • 参考地址:  Certbot Instructions | Certbot

2>停止nginx
service nginx stop
确保nginx已经安装了http_ssl_module模块
[root@iZ257v6fpmnZ configs]# /usr/local/nginx/sbin/nginx -V
nginx version: nginx/1.10.3
built with OpenSSL 1.0.1e-fips 11 Feb 2013
TLS SNI support enabled
configure arguments: --user=xxx --group=xxx --prefix=/usr/local/nginx --sbin-path=/usr/local/nginx/sbin/nginx --conf-path=/usr/local/nginx/conf/nginx.conf --with-http_stub_status_module --with-http_ssl_module --with-pcre --lock-path=/var/run/nginx.lock --pid-path=/var/run/nginx.pid

 

如果已经安装过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/

3>生成证书(如果后期生成报错,先删除原有certbot-auto,按第一步重新下载certbot即可)
#使用-d追加多个域名
./certbot-auto certonly --standalone --email 241495843x@qq.com --agree-tos -d itech -d www.ietch9.com

在证书生成之后:发现/etc/letsencrypt 下面多了这些文件
/etc/letsencrypt/
├── accounts
│   └── acme-v02.api.letsencrypt.org
│   └── directory
│   └── 6bea6b46b9a0c4d2c38d3ea2232f5f9c
├── archive
│   └── itech9.com
├── configs
├── csr
├── keys
├── live
│   └── itech9.com
├── renewal
└── renewal-hooks
├── deploy
├── post
└── pre

进入live 目录我们会在 "/etc/letsencrypt/live/itech9/" 域名目录下有4个文件就是生成的密钥证书文件。
/etc/letsencrypt/live/itech9.com
├── cert.pem -> ../../archive/itech9.com/cert1.pem
├── chain.pem -> ../../archive/itech9.com/chain1.pem
├── fullchain.pem -> ../../archive/itech9.com/fullchain1.pem
├── privkey.pem -> ../../archive/itech9.com/privkey1.pem
└── README

5.配置nginx

​
server {
    #listen 101.100.182.230:443;
    listen 443 ssl;
    client_max_body_size 20M;
    server_name www.itech9.com itech9.com;
    charset utf-8;
    index index.html index.htm index.php;
    root /data/project/xxx/public;
    ssl on;
    ssl_certificate /etc/letsencrypt/live/itech9.com/fullchain.pem; #公钥
    ssl_certificate_key /etc/letsencrypt/live/itech9.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_prefer_server_ciphers on;

    location / {
    ....
    }
}

​

6.启动nginx
service nginx start

7.自动续费脚本
cd /etc/letsencrypt/
创建/etc/letsencrypt/configs/renew-cert.sh

[root@iZ257v6fpmnZ configs]# cat renew-cert.sh
#!/bin/bash

停止nginx

sudo /usr/local/nginx/sbin/nginx -s stop

续签

--force-renew 强制更新

/data/source_code/certbot-auto renew --force-renew

启动nginx

sudo /usr/local/nginx/sbin/nginx

chmod a+x renew-cert.sh

如果更新证书时出现报错:
Couldn’t download raw.githubusercontent.com/certbot/cer…
使用命令打开etc文件夹下面的hosts文件:
vim /etc/hosts
增加内容
199.232.4.133 raw.githubusercontent.com
重启网络
service network restart
或者
/etc/init.d/network restart

8.自动更新https证书
/crontab定时任务自动更新证书
0 4 1 */2 * /etc/letsencrypt/configs/renew-cert.sh >/root/crontab.log 2>&1

Let’s Encrypt 生成的免费证书为3个月时间,但是我们可以无限次续签证书

问题:let’s Encrypt 证书之安装故障 Could not bind to IPv4 or IPv6.

Problem binding to port 80: Could not bind to IPv4 or IPv6.
则原因是 nginx 占用了80端口,输入 service nginx stop。然后再次执行证书安装命令,即可顺利安装。

安装完毕后,输入 service nginx start,重启 nginx 服务。

参考网址:
1.certbot.eff.org/
2.blog.csdn.net/qq_39594705…
3.yq.aliyun.com/articles/13…
4.blog.csdn.net/qingtian200…
5.blog.csdn.net/putative/ar…
6.www.huangyuyi.cn/2018/04/08/…

acme.sh 续费管理
github.com/Neilpang/ac…

公众号看下

成语宝典查询

成语典故|对牛弹琴

掘金地址:Let’s Encrypt 安装https免费证书配置 - 掘金

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/126030.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

生物药、创新药、仿制药新项目立项调研、评估的重要手段

当前,随着我国制药行业与国际的高速接轨,研发和产业环境也迎来了崭新的局面。制药企业的核心竞争力是研发,而研发中的立项是直接影响新药开发成功与否的关键因素,那么如何有效的规避开发的风险,立项论证显得极其重要,也是每个医药…

车道线标注案例分析

车道线标注属性细分规则确认点 常见车道线的标注分类属性包括5个维度:颜色、线型、线数、车道、职能 颜色标签:如白色、黄色、蓝色、橙色、黄白色等 线型标签:如实线、虚线、锯齿线等 线数标签:单线、双线,特殊情况…

【高阶数据结构】二叉树的非递归遍历

🌈欢迎来到数据结构专栏~~二叉树的非递归遍历 (꒪ꇴ꒪(꒪ꇴ꒪ )🐣,我是Scort目前状态:大三非科班啃C中🌍博客主页:张小姐的猫~江湖背景快上车🚘,握好方向盘跟我有一起打天下嘞!送给自…

大型家政服务平台带小程序端源码 家政服务小程序源码

1. 开发语言:PHP 2. 数据库:MySQL 3.小程序端:Uniapp 4. 带调试视频 5. 可付费调试运行服务 后台功能: 首页、服务管理、商品管理、订单管理、社区管理、城市代理/运营、 营销活动、会员管理、师傅管理、商家/门店、财务管理、合…

警惕!不要让自己的基本功丢失

写这篇文章的缘由是来自己最近我作为面试官的一场面试,我司是。Net stack,这场面试的岗位是后端高级开发。候选人是一个 12 年工作经验的候选人,简历看起来很 nice,国内某 TOP 高校 cs 专业本科毕业,有在大厂甲方外企的…

浙大MBA的录取由初试和复试两面组成

今年7月收到了来自浙大的录取通知书,在拿到录取通知书的那一刻,觉得这一年多备考的艰辛都是值得的。 关于本人情况:2021年备考,刚到而立之年,2012年毕业于一所普通的本科院校,在校期间成绩倒是还好&am…

Vue3 中选项式下的侦听器

目录前言:watch 侦听的分类:函数式的侦听器对象式侦听器创建侦听器停止侦听器总结:前言: 今天小编给大家讲解一下,Vue3 中选项式下的侦听器。 我正在参加 2022年「博客之星」年度总评选,请大家帮我支持一下…

【服务器数据恢复】XFS文件系统分区丢失怎么恢复数据?

服务器数据恢复环境: 磁盘柜RAID卡搭建riad5磁盘阵列; Linux操作系统; 总共一个LUN,划分两个分区;:sdc1分区通过LVM扩容的方式加入到了root_lv中,sdc2分区格式化为XFS文件系统。 服务器故障: 用户为服务器…

本科生学深度学习一轻松搭建强化学习环境,gym的安装

OpenAI Gym 是一个工具包,提供了广泛的模拟环境,也是强化学习的环境,因为想学强化学习,所以需要搭建一个环境,之前一直在代码层面,还是得能看到,比较直观 今天看下怎么安装这个环境 1、官方网站…

【mybatis-plus】Springboot+AOP+自定义注解实现多数据源操作(数据源信息存在数据库)

背景 本文主要讲述的是如何实现动态切换数据源,数据源信息是存储在数据库表里,与在配置文件中写好数据库信息然后用DS("XX")注解不同。 目录 前言 一、准备工作 1.依赖 2.数据库表(脚本) 3.配置文件 4.自定义注解C…

【MySQL基础教程】约束的介绍与使用

前言 本文为 【MySQL基础教程】约束 相关知识,下边将对约束概述,约束演示,外键约束(包括:外键约束介绍、外键约束语法)等内容进行详尽介绍~ 📌博主主页:小新要变强 的主页 &#x1…

只懂黑盒测试也能学会的代码覆盖率及精准化测试

测试覆盖率是对测试完成程度的度量。它通常依据某种覆盖准则来对测试用例执行情况进行衡量,以判断测试执行得是否充分 。 ——出自《 计算机科学技术名词 》第三版 今天文章中我们给大家介绍覆盖率统计及覆盖率分析。在10月13日20:00,资深测…

Vue_cli中config文件配置详细注解

我在scr同级目录下创建了config文件夹,里边包含三个文件 它们3个有引用关系 dev引用prod prod.env.js文件 /* * process.argv.splice(2)[0]返回的是node.js的绝对路径 * /usr/local/bin/node */ let HOST process.argv.splice(2)[0] || prod module.exports {NO…

项目实战之旅游网(十)前台用户注册

目录 一.网站首页 二.编写注册界面 三.生成验证码 四.注册流程 五.编写注册方法 六.发送邮件配置 一.网站首页 static/frontdesk下存放前台静态资源,而templates/frontdesk是前台页面 二.编写注册界面 在上个界面点击注册就可以跳转到注册界面 在这里遇到一…

2022 年上海市大学生程序设计竞赛 M. My University Is Better Than Yours

大家总喜欢搞些什么排行榜。有一说一,排行榜通常不重要,除非——比如你老板要你做一下年终总 结。 为了实现建设世界一流大学和建设世界一流学科的目标,不少大学都用各种方式提升排名:发表论文、 申请基金、提升多样性. . . 不过…

Linux操作系统实验4——内存映射

实验要求: 1.在源码中查看file_operations和vm_operations_struct结构定义及其操作对象的方法,重点查看mmap方法fault方法的参选类型。 2.设备模块代码的编写和调试,重新编写file_operations结构中的mmap方法,和vm_operations_str…

美团一面:能不能通俗的解释下为什么要有意向锁这个东西?

面试真题,用通俗的例子解释清楚 MySQL 为什么有了表锁和行锁之后,还要引入意向锁 众所周知,InnoDB 中既有读锁也有写锁,也称为共享锁和排他锁,这两种锁既可以加在整张表上,也可以加在行上。 MySQL 自身就提…

【Apifox】设置apiFox自动获取token

文章目录问题描述解决方案注意事项参考文章问题描述 接口测试时,每次都需要手动登录获取token,先登录系统,从浏览器中复制token,再到apifox的接口上把token帖上去,然后才能去测试具体的接口;更麻烦的是&am…

【实时数仓】热度关键词接口、项目整体部署流程

文章目录一 热度关键词接口1 Sugar配置(1)图表配置(2)接口地址(3)数据格式(4)执行SQL2 数据接口实现(1)创建关键词统计实体类(2)Mappe…

小黑hbase终于勉强跑到了自己的m1 Macbook上啦,虽然终端用不了,但是能从happybase访问的日常积累:happybase简单使用

1.happybase连接 # 连接操作 import happybase# 建立连接 con happybase.Connection(localhost, 9090) con.open() # 输出所有表名称 print(con.tables()) # 关闭传输 con.close() con.open()2.创建表格 # 创建表格 con happybase.Connection(localhost, 9090) # 默认9090…