nginx 配置 SSL 证书实现 https 访问

nginx 配置SSL证书实现https访问

  • 1. SSL 证书简介与获取
    • 1.1 SSL 证书介绍
    • 1.2 获取 SSL 证书
  • 2. nginx 配置 SSL 文件
    • 2.1 SSL 文件放置与配置文件修改
      • 2.1.1 文件配置
      • 2.1.2 强制 https 访问
    • 2.2 验证配置结果

同步发布在个人笔记 nginx 配置 SSL 证书实现 https 访问

配置好 nginx 服务,并且把域名解析到服务器后,我们已经可以通过 http://mydomain.com访问到页面了。但是 http 协议是明文通信,如果我们希望我们的服务器与web应用更安全的话,就应该使用 https 协议。本文就记录一下 nginx 配置 SSL 证书实现 https 协议的过程。SSL 证书采取 cloudflare 颁发的长时间证书。
域名解析:域名获取 · 解析至公网服务器
nginx 部署: DOCKER部署NGINX,PHP环境(步骤+注解)

1. SSL 证书简介与获取

1.1 SSL 证书介绍

如上文所说,http 协议是明文协议,https 协议是加密协议,这个加密过程就是通过 SSL(Secure socket layer) 证书(其中一种方式)实现的。SSL 证书分为两部分

  • xxx.pem 证书文件
  • xxx.key 私钥文件

两个文件将服务器与域名绑定在一起,这样就能通过 https 协议和这个域名,安全的访问服务器上的 web 应用了。

1.2 获取 SSL 证书

SSL 证书可以向 CA 机构通过付费的方式申请(证书都是有有效期的),也可以自己制作。一般企业会去购买证书,个人用户推荐使用免费的证书。
上面已经说明,SSL 证书将域名和服务器绑定。那我们就可以找相关服务商申请证书,比如阿里云、腾讯云、华为云已经经典的 Let’s Encrypt 方式。
由于我的服务器是让 cloudflare 管理的,那就正好使用 cloudflare 的长时期(15年)证书吧。
注意要使用 cloudflare 的 SSL 证书必须要开启 CDN 服务,也就是 DNS 那里的小云朵,详细也可以参考笔记:域名解析:域名获取 · 解析至公网服务器。
现在假设我们已经把域名通过 cloudflare 解析到我们的服务器,并且已经开启 CDN 小云朵了。
在这里插入图片描述

进入站点的管理界面,选择左侧栏的SSL/TLS —>概述,并将加密模式改为完全(严格)
在这里插入图片描述

点击源服务器,进入创建界面
在这里插入图片描述

确定包含的域名包含我们的domain.com和所有 CNAME 的域名*.domain.com
在这里插入图片描述

点击创建即可,获得两个文本,建议保存为与域名相关的文件

  • domain_com.pem
  • domain_com.key

文件务必要保存好,尤其是key私钥文件,后面是不能通过网页再次查看的。
这样我们的 SSL 证书就获取好了。

2. nginx 配置 SSL 文件

2.1 SSL 文件放置与配置文件修改

2.1.1 文件配置

nginx 配置 SSL 文件实际上是为一个域名配置 https 服务,所以归根结底是配置一个新域名-服务,所以应该配置在conf.d 文件夹。
/etc/nginx/conf.d/文件夹下新建SSL文件夹,用来存放刚刚获得的domain_com.pem, domain_com.key。然后新建domain_com.conf, 编辑为类似如下的内容:

server {listen	443 ssl;		# HTTPS的默认访问端口443。     server_name	domain.com;		# 证书绑定的域名ssl    on;		# 开启 SSLssl_certificate	/etc/nginx/cond.d/SSL/domain_com.pem;		# 绝对路径ssl_certificate_key	/etc/nginx/cond.d/SSL/domain_com.key;		# 绝对路径ssl_session_cache shared:SSL:1m;ssl_session_timeout 5m;#自定义设置使用的TLS协议的类型以及加密套件(以下为配置示例,请您自行评估是否需要配置)#TLS协议版本越高,HTTPS通信的安全性越高,但是相较于低版本TLS协议,高版本TLS协议对浏览器的兼容性较差。ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4;ssl_protocols TLSv1.1 TLSv1.2 TLSv1.3;#表示优先使用服务端加密套件。默认开启     ssl_prefer_server_ciphers on;# log 文件access_log /var/log/nginx/nginx.vhost.access.log;error_log /var/log/nginx/nginx.vhost.error.log; location / {root html;index index.html index.htm;#其他的配置~~}
}

TLS 没开的话把相关部分关掉即可。

2.1.2 强制 https 访问

如果希望所有通过此域名的访问都必须走 https 协议的话,可以在上面的配置语句后面跟上强制跳转的语句:

server {listen 80;#填写证书绑定的域名server_name domain.com;#将所有HTTP请求通过rewrite指令重定向到HTTPS。rewrite ^(.*)$ https://$host$1;location / {index index.html index.htm;}
}

2.2 验证配置结果

配置好后。通过systemctl restart nginx重启 nginx 服务并加载配置文件。
然后去浏览器输入https://domain.com看看是否能访问吧。

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

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

相关文章

LabVIEW和MES系统的智能化车间数据对接

LabVIEW和MES系统的智能化车间数据对接 随着工业4.0时代的到来,智能制造成为推动制造业高质量发展的重要手段。其中,数字化车间作为智能制造的重要组成部分,其设计与实现至关重要。在数字化车间环境下,如何利用LabVIEW软件与MES系…

Android Radio实战——获取音频补丁异常分析(二十一)

上一篇文章介绍了 Radio 开发中获取音频补丁的相关流程,这一篇来看一下获取流程中出现的一个 Bug 分析 一、异常Log分析 1、Log内容 收到这样一份 ANR 异常Log: "main" prio=5 tid=1 Native| group="main" sCount=1 dsCount=0 flags=1 obj=0xxxxx sel…

Spark pivot数据透视从句

1. 概念2. 实战 2.1. 新列的决定因素2.2. 新列别名2.3. column_list中指定多个字段2.4. 多个聚合函数的使用2.5. 最终出现在SQL结果中的决定因素 Spark pivot数据透视从句 1. 概念 描述 用于数据透视,根据特定的列获取聚合值,聚合值将转换为select子句…

求最小公倍数

两种方法 1.直接求 import java.util.Scanner;/*** HJ108 求最小公倍数 - 简单*/ public class HJ108 {public static void main(String[] args) {Scanner sc new Scanner(System.in);while(sc.hasNextInt()){int n1 sc.nextInt();int n2 sc.nextInt();for(int i 1; i &l…

quasar框架切换Tab页使用<keep-alive>缓存

写法1 : 使用quasar的q-tabs组件使用方法 //布局样式根据需求自己设置 <template><div class"all-Tabs"><q-tabs v-model"activeTabName" update:model-value"selectedChange"><q-tabv-for"(item, index) in cardAr…

Elasticsearch 索引数据多了,调优,部署方案

1&#xff1a;动态索引层面 基于 模板时间rollover api 滚动 创建索引&#xff0c;举例&#xff1a;设计阶段定义&#xff1a;blog 索引的模板格式为&#xff1a;blog_index_时间戳的形式&#xff0c;每天递增数据。这样做的好处&#xff1a;不至于数据量激增导致单个索引数据量…

sklearn混淆矩阵的计算和seaborn可视化

为了计算语义分割的指标miou&#xff0c;需要生成的中间过程就是混淆矩阵。 iou intersection / union 每个类别的平均iou就是mean iou。 使用sklearn自带的confusion_matrix能很容易生成混淆矩阵&#xff0c;可以进行混淆矩阵的可视化观察哪个类别分割的不好。 from skle…

【go从入门到精通】深入剖析反射

作者简介: 高科,先后在 IBM PlatformComputing从事网格计算,淘米网,网易从事游戏服务器开发,拥有丰富的C++,go等语言开发经验,mysql,mongo,redis等数据库,设计模式和网络库开发经验,对战棋类,回合制,moba类页游,手游有丰富的架构设计和开发经验。 (谢谢你…

OAuth2、JWT

文章目录 OAuth2JWT OAuth2 官网&#xff1a; https://oauth.net/2/ 在 RFC 6749 中说明 1、资源所有者 resource owner&#xff0c; 如 github 用户 2、客户端/第三方应用 client&#xff0c; 如 支持github 登录的 csdn 3、资源服务器 resource server&#xff0c; 如 4、授…

深入浅出MySQL-04-【常用函数】

前言 环境&#xff1a; Window11MySQL-8.0.35 1.字符串函数 最常用的一种函数。 注意&#xff1a;在 MySQL 中&#xff0c;字符串的下标&#xff08;或称为索引&#xff09;是从 1 开始的&#xff0c;而不是从 0 开始。 函数功能CONCAT(s1, s2, …, sn)连接s1, s2, …, s…

【高阶数据结构】B树 {B树的概念;B树的实现:节点设计,查找,插入,遍历,删除;B树的性能分析;B+树和B*树;B树的应用}

一、常见的搜索结构 以上结构适合用于数据量相对不是很大&#xff0c;能够一次性存放在内存中&#xff0c;进行数据查找的场景。如果数据量很大&#xff0c;比如有100G数据&#xff0c;无法一次放进内存中&#xff0c;那就只能放在磁盘上了&#xff0c;如果放在磁盘上&#xff…

如何查看连接的Linux服务器是ubuntu还是centos

测试环境 Ubuntu 22.04.4CentOS Linux release 7.9.2009 (Core) centos使用以下命令 cat /etc/centos-release结果 CentOS Linux release 7.9.2009 (Core)或者 cat /etc/issue结果 \S Kernel \r on an \mubuntu使用以下命令 cat /etc/issue结果 Ubuntu 22.04.4 LTS \n …

全局路线规划导读

系列文章目录 提示&#xff1a;这里可以添加系列文章的所有文章的目录&#xff0c;目录需要自己手动添加 TODO:写完再整理 文章目录 系列文章目录前言一、全局路径探索的介绍二、基于定位的全局航线的录制方法扩展阅读可参考 三、曲线拟合的方法--Dubins曲线与Reeds-Shepp曲线…

Linux系统安全:从面临的攻击和风险到安全加固、安全维护策略(文末有福利)

1. Linux面临的攻击与风险 1.1. Linux系统架构 Linux系统架构解读&#xff1a; 用户之间隔离内核态与用户态之间隔离用户进程一般以低权限用户运行系统服务一般以特权服务运行用户态通过系统调用进入内核态内核对系统资源进行管理和分配 1.2. Linux系统常见安全威胁 1.2.1.…

Qt/C++音视频开发71-指定mjpeg/h264格式采集本地摄像头/存储文件到mp4/设备推流/采集推流

一、前言 用ffmpeg采集本地摄像头&#xff0c;如果不指定格式的话&#xff0c;默认小分辨率比如640x480使用rawvideo格式&#xff0c;大分辨率比如1280x720使用mjpeg格式&#xff0c;当然前提是这个摄像头设备要支持这些格式。目前市面上有一些厂家做的本地设备支持264格式&am…

目标检测——YOLOv7算法解读

论文&#xff1a;YOLOv7: Trainable bag-of-freebies sets new state-of-the-art for real-time object detectors (2022.7.6) 作者&#xff1a;Chien-Yao Wang, Alexey Bochkovskiy, Hong-Yuan Mark Liao 链接&#xff1a;https://arxiv.org/abs/2207.02696 代码&#xff1a;h…

C++_第八周做题总结

id:45 A.Equation(类与对象构造) 题目描述 建立一个类Equation&#xff0c;表达方程ax2bxc0。类中至少包含以下方法&#xff1a; 无参构造&#xff08;abc默认值为1.0、1.0、0&#xff09;与有参构造函数&#xff0c;用于初始化a、b、c的值&#xff1b; set方法&#xff0c;…

哈希封装unordered系列关联式容器

文章目录 补档HashTable迭代器基本框架具体实现 HashTable模板化具体实现 UnorderedSet封装具体实现 UnorderMap封装 补档 上一次我们在使用哈希函数时说&#xff0c;利用仿函数可以解决不知道哈希表内存的数据类型时对哈希函数也可以进行计算&#xff0c;但是当时只给了一个框…

Android判断应用是否在前台运行

Android判断应用是否在前台运行 /*** Android判断应用是否在前台运行* 0&#xff1a;异常&#xff1b;1&#xff1a;前台&#xff1b;2&#xff1a;后台&#xff1b;3&#xff1a;未运行&#xff1b;*/private int isFrontShow(Context context) {if (context null) {ret…

基于STM32 的机场安检闸机排队系统

项目&#xff1a;基于STM32 的机场安检闸机排队系统 应用场景&#xff1a;现实中可能涉及到人数限额排队的情况下使用&#xff0c;例如安检&#xff08;不能一次性通过太多人数&#xff1a;机场、高铁站、地铁等&#xff09;&#xff0c;电梯人数限额&#xff08;一个电梯内限…