nginx 配置 SSL 证书实现 https 访问

news2025/1/15 23:26:28

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;		# 开启 SSL
     ssl_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.coloradmin.cn/o/1623268.html

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

相关文章

【嵌入式linux】Ubuntu 修改用户名

第一次打开Ubuntu时不小心把初始用户名“siriusiot”写成“siriousiot”(多了一个o) 。作为技术人,我们要保持严谨,我们要纠正过来(其实就是单词拼错了怕被笑话)。 打开终端,输入: …

WEB攻防-ASP安全-MDB下载

MDB下载漏洞主要涉及到早期ASPAccess构架的数据库文件。当Web站点提供文件下载功能时,如果没有对下载请求进行充分的验证和过滤,或者服务器配置不当,就可能产生文件下载漏洞。攻击者可以利用这个漏洞,通过修改请求参数或尝试猜测或…

Composer初次接触

php一直都是简单处理一下单片机的后台服务,没什么深入研究 今天安装一个 php composer.phar require qiniu/php-sdkComposer完全不懂,照着一试,就报错了 - topthink/think-installer v1.0.12 requires composer-plugin-api ^1.0 -> found…

什么是OCR转换?

OCR转换是指将图片或扫描文档中的文字内容转换成电子文本的过程。OCR代表光学字符识别(Optical Character Recognition),是一种通过算法和模型来识别图像或文档中的文字,并将其转换成可编辑、可搜索的文本格式。OCR转换通常包括以…

分布式-知识体系

分布式系统 本质就是一堆机器的协同,要做的就是用各种手段来让机器的运行达到预期 分布式业务场景 分布式四纵四横说 基于 MSA(微服务架构)的分布式知识体系 相关概念 – 【摘自网络原文】 节点与网络 节点 传统的节点也就是一台单体的物…

AI预测体彩排列3第2套算法实战化测试第3弹2024年4月25日第3次测试

今天继续进行新算法的测试,今天是第3次测试。好了,废话不多说了,直接上图上结果。 2024年4月25日体彩排3预测结果 6码定位方案如下: 百位:4、5、3、6、1、0 十位:6、5、4、3、1、0 个位:6、2、7…

Lock-It for Mac(应用程序加密工具)

OSXBytes Lock-It for Mac是一款功能强大的应用程序加密工具,专为Mac用户设计。该软件具有多种功能,旨在保护用户的隐私和数据安全。 Lock-It for Mac v1.3.0激活版下载 首先,Lock-It for Mac能够完全隐藏应用程序,使其不易被他人…

【UE C++】重写基类中的BeginPlay、Tick函数

前言 为了让游戏场景中的各种继承于“Actor”的游戏对象在生命周期中执行自定义逻辑和行为,我们通常需要重写“Actor”类及其派生类中的BeginPlay、Tick函数。 那么如何用C重写BeginPlay、Tick函数呢,可参考如下步骤。 步骤 1. 在头文件中添加如下代码…

consul服务注册与发现、服务配置与刷新

为什么要用服务注册?为什么要用consul不用eureka? 举个栗子: 微服务当中存在多个服务模块,每个服务模块的ip端口在每套环境是不一致的,开发切换环境部署时,如果漏了一个配置忘记改动,将是一个很…

如何开启kali的ssh远程连接

1.打开配置文件 vim /etc/ssh/sshd_config 将第13行和32改为如下,保存退出 重启服务 sudo systemctl restart ssh.service 使用远程工具(如xshell)即可连接 如果无法连接,需要先生成两个密钥:ssh-keygen -t dsa -f…

Web APIs 学习归纳1---Web API概述简单的元素获取

JS基础中我们学习了JS的基本语句,这些是后续学习中的基础。 有了上述JS的基础以后,我们就可以开始学习交互效果的实现方法。这里很多时候直接调用JS封装好的API即可。 一、Web APIs 和 JS 基础关联性 这里有一张图很好的解释了这个问题: 我们…

离线模式下载安装gcc-4.8.5

目录 一,下载gcc离线安装包 二,下载gcc依赖包 三,安装gcc 1, 解压 2, 将依赖库放置环境 3, 安装 3.1自动安装 3.1.1 执行依赖库的编译 3.1.2 新建编译目录 3.1.3 配置编译环境 3.1.4 编译 3.1.5 安装 3.2 手动安装 3.2.…

扫码怎样上传现场照片或视频?快速提交现场记录的方法

现在很多应用场景会使用二维码来登记信息,通过手机扫描二维码即可根据问题填写对应的数据,比如在活动签到、预约报名、巡视检查、用户调研等场景现在都会采用这种方式来登记信息。有些时候需要扫码者在填写数据时上传现场相关照片或者视频来作为证明&…

Unity Meta Quest MR 开发(七):使用 Stencil Test 模板测试制作可以在虚拟与现实之间穿梭的 MR 传送门

文章目录 📕教程说明📕Stencil Test 模板测试📕Stencil Shader📕使用 Unity URP 渲染管线设置模板测试⭐Render Pipeline Asset 与 Universal Renderer Data⭐删除场景中的天空盒⭐设置虚拟世界的层级 Layer⭐设置模板测试 &#…

FreeRTOS:3.消息队列

FreeRTOS消息队列 本文主要基于消息队列的源码进行分析,来对FreeRTOS的消息队列进一步学习。 消息队列非常重要,因为后面的各种信号量基本都是基于队列的,搞清楚消息队列的源码,也就搞清楚消息队列的原理。 参考链接&#xff1…

Linux命令行基本操作

目录 (1)实验目的: (2)实验内容: (3)实验原理: (4) 实验步骤: 1.分别创建两个文件并任意输入不同的英文内容(文件名用自己的姓名拼音与编号命名,如zhangsan01、zhangsan02)。 2.将上题两个文件合并&a…

【Hadoop】-HDFS的Shell操作[3]

目录 前言 一、HDFS集群启停命令 1.一键启停脚本可用 2.独立进程启停可用 二、文件系统操作命令 1、创建文件夹 2、查看指定目录下内容 3、上传文件到HDFS指定目录下 4、查看HDFS文件内容 5、下载HDFS文件 6、拷贝HDFS文件 7、追加数据到HDFS文件中 8、HDFS数据移…

统一SQL 支持Oracle decode函数到TDSQL-MySQL的转换

统一SQL介绍 https://www.light-pg.com/docs/LTSQL/current/index.html 源和目标 源数据库:Oracle 目标数据库:TDSQL-MySQL 操作目标 在Oracle中,decode函数语法如下图:该函数功能是将 expr与每个 search 依次做比较&#x…

【学习】应急响应

知识体系 事件前 事件后 导致安全事件的原因 part2 事件的分级分类 part3 应急响应工作流程

springboot_java_Ssm高校网上教材征订系统

SpinrgBoot的主要优点有: 1、为所有spring开发提供了一个更快、更广泛的入门体验; 2、零配置; 3、集成了大量常用的第三方库的配置; 4、提供准备好的特性。当今,java领域的开发者机会都在使用SpinrgBoot,在开发领域逐渐…