如何给自己的网站添加 https ssl 证书
文章目录
- 一、简介
- 二、申请 ssl 证书
- 三、下载 ssl 证书
- 四、配置 nginx
- 五、开放 443 端口
- 六、常见问题解决
- (一)、配置后,访问 https 无法连接成功
- (二) 证书配置成功,但是访问 https 还是报不安全
- 总结
- 参考资料
一、简介
相信大家都知道 https 是更加安全的,特别是一些网站,有 https 的网站更能够让用户信任访问
接下来以我的个人网站 五岁小孩 (jxy.xj.cn) 为例子,带大家一起从 0 到 1 配置网站 https
本次配置的:
- 证书是 腾讯云免费证书、
- 服务器也是腾讯云的、
- 使用 docker 部署的 nginx
二、申请 ssl 证书
推荐使用云服务的免费 ssl 证书,一般都会有免费额度,本次使用的是腾讯云的 ssl 证书:我的证书 - SSL 证书 - 控制台 (tencent.com)


提交申请后到 【我的证书】列表,等待审核通过,一般几分钟就审核通过了

三、下载 ssl 证书
等待证书审核通过之后,就可以下载 ssl 证书到本地

四、配置 nginx
如果你的 nginx 和我一样是通过 docker 部署的,那么在配置之前要先确认下容器有没有映射 443 端口,如果不是 docker 部署,则可以忽略这一步
使用 docker 命令查看
docker ps | grep nginx

接下来就可以配置 nginx 了:
-
首先将刚才下载的 ssl 压缩包上传到服务器,解压到 nginx的配置目录
一般是上传在 nginx.conf 的同级目录下的 cert 目录,如下图


注意:证书一定要放在 nginx.conf 的同级目录下,以免重启配置出现问题
- 修改 nginx 的配置
修改配置文件,添加 443 代理
例子如下:
server {listen 443 ssl; # 开启 443 代理监听server_name blog.jxy.xj.cn; # 证书绑定的域名ssl_certificate cert/blog.jxy.xj.cn_bundle.pem; # 证书 pem 位置ssl_certificate_key cert/blog.jxy.xj.cn.key; # 证书 key 位置ssl_session_cache shared:SSL:1m;ssl_session_timeout 5m;ssl_ciphers HIGH:!aNULL:!MD5;ssl_prefer_server_ciphers on;# 代理映射的服务,我这里是代理了 443 到 本地的 30891,按自己的配置 location / {proxy_pass http://127.0.0.1:30891;proxy_set_header Host $host;}}
- 重启 nginx
重启前推荐 执行nginx -t命令检查配置文件是否有语法错误。如果没有错误,执行nginx -s reload命令使配置生效。
我这里是使用 docker 部署,所以我直接使用 docker restart nginx 重启
如果启动后有问题无法正常访问,可以查看 nginx 的错误日志,一般是位于 /var/log/nginx/error.log 查看具体原因
五、开放 443 端口
先看自己的防火墙状态,如果是激活状态,那就需要开放 443 端口
这一步请自行百度
基本上到这里之后,直接访问就可以了:五岁小孩 (jxy.xj.cn)

六、常见问题解决
(一)、配置后,访问 https 无法连接成功
这种情况的排查思路:
-
确认下自己的 nginx 的状态是否正常启动,如果是 docker,则使用 docker ps| grep nginx , 一般可能是因为配置写错了,如证书的路径配错了,导致 nginx 无法正常启动,那么在查看 error.log 时就会出现错误:
cannot load certificate "/etc/nginx/cert/jxxxx": BIO_new_file() failed (SSL: error:02001002:system library:fopen:No such file or directory:fopen('/etc/nginx/cert/jxxxx','r') error:2006D080:BIO routines:BIO_new_file:no such file)此时就需要先确认配置是否正确,可以使用 nginx -t 检查
-
还有一种可能是,docker 部署,但是没有映射 443端口
(二) 证书配置成功,但是访问 https 还是报不安全
这种一般只有两种情况:
-
证书和域名没对上,比如证书绑定的A域名,但是你在 nginx 配置的是 B 域名
-
证书过期
可以使用curl -vvv https://域名访问返回的证书是过期,是否配置错误
如果出现:Unable to communicate securely with peer: requested domain name does not match the server’s certificate
那就说明你的证书和域名没对上
总结
配置 ssl 证书还是很简单的:
申请证书 -> 下载证书 -> 配置nginx -> 重启 ngix
参考资料
如何给自己的网站添加 https
相关文章:
如何给自己的网站添加 https ssl 证书
文章目录 一、简介二、申请 ssl 证书三、下载 ssl 证书四、配置 nginx五、开放 443 端口六、常见问题解决(一)、配置后,访问 https 无法连接成功(二) 证书配置成功,但是访问 https 还是报不安全 总结参考资料 一、简介 相信大家都知道 https 是更加安全…...
Vue路由跳转及路由传参
跳转 跳转使用 router vue 的路由跳转有 3 个方法: go 、 push 、 replace go :接收数字, 0 刷新,正数前进,负数后退 push :添加,向页面栈中添加一条记录,可以后退 replace &#…...
计算机网络常见面试总结
文章目录 1. 计算机网络基础1.1 网络分层模型1. OSI 七层模型是什么?每一层的作用是什么?2.TCP/IP 四层模型是什么?每一层的作用是什么?3. 为什么网络要分层? 1.2 常见网络协议1. 应用层有哪些常见的协议?2…...
时隔一年,再次讨论下AutoGPT-安装篇
AutoGPT是23年3月份推出的,距今已经1年多的时间了。刚推出时,我们还只能通过命令行使用AutoGPT的能力,但现在,我们不仅可以基于AutoGPT创建自己的Agent,我们还可以通过Web页面与我们创建的Agent进行聊天。这次的AutoGP…...
项目三:学会如何使用python爬虫请求库(小白入门级)
根据上一篇文章我们学会的如何使用请求库和编写请求函数,这一次我们来学习一下爬虫常用的小技巧。 自定义Headers Headers是请求的一部分,包含了关于请求的元信息。我们可以在requests调用中传递一个字典来自定义Headers。代码如下 import requests h…...
【热门话题】PyTorch:深度学习领域的强大工具
🌈个人主页: 鑫宝Code 🔥热门专栏: 闲话杂谈| 炫酷HTML | JavaScript基础 💫个人格言: "如无必要,勿增实体" 文章目录 PyTorch:深度学习领域的强大工具一、PyTorch概述二、PyTorch核心特性…...
SQL注入sqli_libs靶场第一题
第一题 联合查询 1)思路: 有回显值 1.判断有无注入点 2.猜解列名数量 3.判断回显点 4.利用注入点进行信息收集 爆用户权限,爆库,爆版本号 爆表,爆列,爆账号密码 2)解题过程࿱…...
QT_day3
完善对话框,点击登录对话框,如果账号和密码匹配,则弹出信息对话框,给出提示”登录成功“,提供一个Ok按钮,用户点击Ok后,关闭登录界面,跳转到其他界面 如果账号和密码不匹配…...
使用ADO.NET访问数据库
目录 访问数据库的步骤 1、建立数据库 2、设置链接参数 (1)web网页和数据库连接的方法一 (2)web网页和数据库连接的方法二 3、建立链接对象 4、显示数据库 5、数…...
SpringBoot的旅游管理系统+论文+ppt+免费远程调试
项目介绍: 基于SpringBoot旅游网站 旅游管理系统 本旅游管理系统采用的数据库是Mysql,使用SpringBoot框架开发。在设计过程中,充分保证了系统代码的良好可读性、实用性、易扩展性、通用性、便于后期维护、操作方便以及页面简洁等特点。 (1&…...
数据结构---线性表
1,顺序表实现---动态分配 #include<stdlib.h> #define InitSize 10 typedef struct {int *data;//静态分配int length;int MaxSize; }SqList; void InitList(SqList& L) {L.data (int*)malloc(InitSize * sizeof(int));//分配空间L.length 0;L.MaxSize…...
MySQL 8.0 字符集问题导致报错
报错: ### Error querying database. Cause: java.sql.SQLException: Illegal mix of collations (utf8_general_ci,IMPLICIT) and (utf8mb4_0900_ai_ci,COERCIBLE) MySQL 8.0引入了一些新的字符集和排序规则,并对现有的进行了改进。在MySQL 8.0中&#…...
单路高清HDMI编码器JR-3211HD
产品简介: JR-3211HD单路高清HDMI编码器是专业的高清音视频编码产品,该产品具有支持1路高清HDMI音视频采集功能, 1路3.5MM独立外接音频输入,编码输出双码流H.264格式,音频MP3/AAC格式。编码码率可调,画面质…...
分库,分表,分区,分片
MySQL: 是一个开源的关系型数据库管理系统,主要用于存储和管理数据。它提供了命令行接口, SQLyog: 是一个图形化的客户端软件,专门用于管理和操作MySQL数据库。 它提供了一个直观的用户界面,简化了MySQL数据…...
【详解算法流程+程序】DBSCAN基于密度的聚类算法+源码-用K-means和DBSCAN算法对银行数据进行聚类并完成用户画像数据分析课设源码资料包
DBSCAN(Density-Based Spatial Clustering of Applications with Noise)是一个比较有代表性的基于密度的聚类算法。 与划分和层次聚类方法不同,它将簇定义为密度相连的点的最大集合,能够把具有足够高密度的区域划分为簇, 并可在噪声的空间数据…...
java es相关操作
一.es 后期修改分片数量 在Elasticsearch中一旦索引创建后,分片的数量就不能直接更改。如果需要更改分片的数量,你需要按照以下步骤操作: 创建一个新的索引,并指定所需的分片数量。 将旧索引的数据复制到新索引中。 关闭旧索引…...
腾讯EdgeOne产品测评体验——开启安全防护,保障数据无忧
当今时代数字化经济蓬勃发展人们的生活逐渐便利,类似线上购物、线上娱乐、线上会议等数字化的服务如雨后春笋般在全国遍地生长,在人们享受这些服务的同时也面临着各式各样的挑战,如网络数据会不稳定、个人隐私容易暴露、资产信息会被攻击等。…...
机器视觉图形处理软件介绍
机器视觉图形处理软件介绍 一.VisionPro 康耐视公司推出的 系统,具有快速而强大的应用系统开发能力。可快速建立原型和易于集成 。具有高可靠性、硬件灵活性。VisionPro 提供了易于应用的原型、发展和应用。VisionProQuickStart 原型环境加速了强大机器视觉系统的…...
C# WinForm简介
Winform是什么? .Net开发平台中对Windows Form的简称,基于.Net Framework平台 的客户端开发技术,一般使用C#编程。Windows 风格的控件,以及事件,直接使用,开发快速。Windows Form:Windows窗体Windows应用程…...
概念:CPU、内存、磁盘、Android内存分配
cpu CPU的全称是Central Processing Unit,中文名称为中央处理单元。它是计算机硬件的核心部件,负责解释计算机程序指令并处理计算机软件中的数据。简言之,CPU执行计算机程序中的操作指令,包括基本算术、逻辑、控制和输入/输出&am…...
HTML 语义化
目录 HTML 语义化HTML5 新特性HTML 语义化的好处语义化标签的使用场景最佳实践 HTML 语义化 HTML5 新特性 标准答案: 语义化标签: <header>:页头<nav>:导航<main>:主要内容<article>&#x…...
7.4.分块查找
一.分块查找的算法思想: 1.实例: 以上述图片的顺序表为例, 该顺序表的数据元素从整体来看是乱序的,但如果把这些数据元素分成一块一块的小区间, 第一个区间[0,1]索引上的数据元素都是小于等于10的, 第二…...
超短脉冲激光自聚焦效应
前言与目录 强激光引起自聚焦效应机理 超短脉冲激光在脆性材料内部加工时引起的自聚焦效应,这是一种非线性光学现象,主要涉及光学克尔效应和材料的非线性光学特性。 自聚焦效应可以产生局部的强光场,对材料产生非线性响应,可能…...
Xshell远程连接Kali(默认 | 私钥)Note版
前言:xshell远程连接,私钥连接和常规默认连接 任务一 开启ssh服务 service ssh status //查看ssh服务状态 service ssh start //开启ssh服务 update-rc.d ssh enable //开启自启动ssh服务 任务二 修改配置文件 vi /etc/ssh/ssh_config //第一…...
JavaScript 中的 ES|QL:利用 Apache Arrow 工具
作者:来自 Elastic Jeffrey Rengifo 学习如何将 ES|QL 与 JavaScript 的 Apache Arrow 客户端工具一起使用。 想获得 Elastic 认证吗?了解下一期 Elasticsearch Engineer 培训的时间吧! Elasticsearch 拥有众多新功能,助你为自己…...
基于uniapp+WebSocket实现聊天对话、消息监听、消息推送、聊天室等功能,多端兼容
基于 UniApp + WebSocket实现多端兼容的实时通讯系统,涵盖WebSocket连接建立、消息收发机制、多端兼容性配置、消息实时监听等功能,适配微信小程序、H5、Android、iOS等终端 目录 技术选型分析WebSocket协议优势UniApp跨平台特性WebSocket 基础实现连接管理消息收发连接…...
SpringBoot+uniapp 的 Champion 俱乐部微信小程序设计与实现,论文初版实现
摘要 本论文旨在设计并实现基于 SpringBoot 和 uniapp 的 Champion 俱乐部微信小程序,以满足俱乐部线上活动推广、会员管理、社交互动等需求。通过 SpringBoot 搭建后端服务,提供稳定高效的数据处理与业务逻辑支持;利用 uniapp 实现跨平台前…...
C++.OpenGL (10/64)基础光照(Basic Lighting)
基础光照(Basic Lighting) 冯氏光照模型(Phong Lighting Model) #mermaid-svg-GLdskXwWINxNGHso {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg-GLdskXwWINxNGHso .error-icon{fill:#552222;}#mermaid-svg-GLd…...
涂鸦T5AI手搓语音、emoji、otto机器人从入门到实战
“🤖手搓TuyaAI语音指令 😍秒变表情包大师,让萌系Otto机器人🔥玩出智能新花样!开整!” 🤖 Otto机器人 → 直接点明主体 手搓TuyaAI语音 → 强调 自主编程/自定义 语音控制(TuyaAI…...
实现弹窗随键盘上移居中
实现弹窗随键盘上移的核心思路 在Android中,可以通过监听键盘的显示和隐藏事件,动态调整弹窗的位置。关键点在于获取键盘高度,并计算剩余屏幕空间以重新定位弹窗。 // 在Activity或Fragment中设置键盘监听 val rootView findViewById<V…...
