杂记 | 使用Docker和Nginx为网站添加HTTPS访问功能

文章目录

  • 01 准备工作
    • 1.1 HTTPS介绍
    • 1.2 准备工作
  • 02 编写nginx.conf
  • 03 使用docker启动nginx


01 准备工作

1.1 HTTPS介绍

HTTPS(Hypertext Transfer Protocol Secure)是一种通过加密通信保护网站数据传输的协议。它是 HTTP 协议的安全版本,通过使用 SSL(Secure Sockets Layer)或 TLS(Transport Layer Security)协议对数据进行加密和认证。在 HTTPS 下,传输的数据在客户端和服务器之间是加密的,确保信息不被窃听、篡改或伪装。这为网站提供了以下重要好处:

1.2 准备工作

需要一台Linux服务器、一个域名,安装docker。
并且从阿里云等服务商处获取了SSL 证书。
在阿里云的域名管理界面,点击“开启SSL证书”。
在这里插入图片描述
选择“免费证书”即可。
在这里插入图片描述
然后点击“创建证书” -> “证书申请”
填写相应信息,然后提交审核。
通过后点击“下载”,选择Nginx。
在这里插入图片描述
下载好后解压,包含一个.key文件和一个.pem文件。将它们上传到服务器。

02 编写nginx.conf

...
http {
	...
    server {
    	# http2可以提升响应速度 是可选的
        listen 443 ssl http2;				# 这里要加上ssl 443是https的默认端口 80是http的默认端口
        server_name www.xxx.top;			# 证书对应的域名
        location / {
            ...
        }
        ssl_certificate /etc/ssl/certificates/www/www.xxx.top.pem;		# 证书存放路径(docker容器内的路径)
        ssl_certificate_key /etc/ssl/certificates/www/www.xxx.top.key;	# 私钥存放路径(docker容器内的路径)
        # 以下配置可以提升响应速度 是可选的
        ssl_prefer_server_ciphers on;
        ssl_ciphers 'EECDH+AESGCM:EDH+AESGCM:AES256+EECDH:AES256+EDH';
        ssl_stapling on;
        ssl_stapling_verify on;
        ssl_trusted_certificate /etc/ssl/certificates/www/www.xxx.top.pem;
        ssl_buffer_size 4k;
    }
}

概括地说,在监听时新增了ssl,同时增加了ssl_certificate和ssl_certificate_key配置,即可开启HTTPS了。

03 使用docker启动nginx

在服务器的/root目录下新建ssl目录,然后将证书和私钥文件放在该目录下。
编写docker-compose.yml文件(需要安装docker-compose)

version: '3.3'
services:
    nginx:
        volumes:
            - '/root/nginx.conf:/etc/nginx/nginx.conf'	# 配置文件映射
            - '/root/ssl:/etc/ssl/certificates'			# 证书目录映射
            - '/root/html:/usr/share/nginx/html'		# 页面目录映射(可选)
        network_mode: host								# 使用宿主机的网络
        image: 'nginx:stable-alpine-slim'

启动docker容器

# 需要先cd到docker-compose.yml所在的目录 再执行命令
docker-compose up -d

然后就可以输入带https域名进行访问了。

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

1.4 掌握Scala运算符

一、运算符等价于方法 (一)运算符即方法 op运算符与.op方法调用是等价的,op表示运算符:、-、*、/…… 演示x y与x.(y)的等价 (二)方法即运算符 1、单参方法 str.indexOf(‘a’) 与 str indexOf ‘a’…

stable-diffusion-webui的介绍与使用——Controlnet1.1

源码地址:https://github.com/lllyasviel/ControlNet | 最新版本 controlnet-v1.1 论文地址:2302.Adding Conditional Control to Text-to-Image Diffusion Models 扩展UI地址(需先安装sd-webui):https://github.com/M…

【gcc, cmake, eigen, opencv,ubuntu】四.opencv安装和使用,获取opencv matiax 的指针

文章目录 ubuntu系统安装opencv1.下载opencv和opencv_contrib2.安装指导3.Linux 下 fatal error: opencv2/opencv.hpp: 没有那个文件或目录4.g 和cmake 编译使用opencv的程序5.opencv,eigen速度比较6.opencv常用类型符号7.获取opencv matiax 的指针 ubuntu系统安装opencv 1.下…

设计模式大全

使用设计模式的目的: 程序猿在编码的过程中面临着来自耦合性、内聚性、可维护性、可扩展性、重用性、灵活性等多方面的挑战。设计模式是为了让程序具有更好的: 1)重用性,即相同功能的代码编写一次即可,不用重复编写 …

史上最全Hadoop面试题:尼恩大数据面试宝典专题1

说在前面: 《尼恩 大数据 面试宝典》 是 《尼恩Java面试宝典》 姊妹篇。 这里特别说明一下:《尼恩Java面试宝典》41个专题 PDF (请在文末获取)自发布以来, 已经收集了 好几千题, 足足4000多页&#xff0c…

haproxy

haproxy haproxy一:常见的Web集群调度器1.软件2.硬件3.LVS ,Nginx ,Haproxy 的区别: 二:Haproxy应用分析1.HAProxy的主要特性有:2.HAProxy负载均衡策略非常多,常见的有如下8种: 三&a…

【深度学习】YOLOv8训练过程,YOLOv8实战教程,目标检测任务SOTA,关键点回归

文章目录 可用资源资源安装模型训练(检测)模型pridict模型导出 可用资源 https://github.com/ultralytics/ultralytics 官方教程:https://docs.ultralytics.com/modes/train/ 资源安装 更建议下载代码后使用 下面指令安装,这样…

C高级 day37

1、编写一个名为myfirstshell.sh的脚本,它包括以下内容。 1、包含一段注释,列出您的姓名、脚本的名称和编写这个脚本的目的 2、和当前用户说“hello 用户名” 3、显示您的机器名 hostname 4、显示上一级目录中的所有文件的列表 5、显示变量PATH和HOME的值…

uniapp实现应用wgt资源热更新

APP更新一般有两种形式 1、整包更新,通过hbuliderx提供的在线云打包就属于整包更新,属于全量更新,缺点就是打包时间长、要重新走市场审核。费时 2、wgt资源包热更新,通过hbuliderx打wgt包 ,速度快,能在应用…

28.vite

目录 1 一些概念 1.1 单页面应用程序SPA 1.2 vite 2 初始化vite项目 3 项目中的文件 1 一些概念 1.1 单页面应用程序SPA 单页面应用程序是只有一个页面的前端,切换页面通过前端路由来切换 特点如下 实现了前后端分离,后端仅出接口&#…

域名解析详解

域名解析 记录类型: 提示: 将域名指向云服务器,选择 A; 将域名指向另一个域名,选择 CNAME; 建立邮箱选择 MX,根据邮箱服务商提供的 MX 记录填写。 记录类型解释A用来指定域名的 IPv4 地址&…

优思学院|六西格玛倡导者与项目赞助人是什么角色?有何区别?

倡导者(Champion)和项目赞助人(Sponsor)在正式的六西格玛的组织架构中是两个不同的角色,所以希望在这篇文章中解释一下两个角色的区别。 倡导者(Champion)是负责组织竞争力和增长的董事和高管&…

C#提升(一、泛型)

一、什么是泛型 泛型,即“参数化类型” 我们来看以下代码,目的很明确,就是显示参数类型,这种类似的代码或者说只有参数类型不同,但是功能相同时,我们如何让代码写的更优雅? 在泛型没有出现的…

Android11 DNS解析流程

Android11 DNS解析 1. DNS解析概念 ​ DNS的全称是domain name system,即域名系统。主要目的是将域名解析为IP地址,域名是方便用户记忆,但网络传输中源目地址使用IP地址来进行标识的,所以Android中的网络应用程序在发起http请求…

Python(request)爬虫有多强大?

requests是Python中的一种HTTP客户端库,用于发送HTTP请求并获取服务器响应。使用requests库可以轻松地进行常见的HTTP操作,如GET、POST、PUT、DELETE等,支持HTTPS和HTTP连接以及摘要验证、基本认证等身份验证方式。 因此,Python的…

阿里云创建ALB_Ingress

阿里云参考文档 1、编写alb AlbConfig创建文档 rootbiking-pre-middleware:~/alb# cat ingress-alb.yaml apiVersion: alibabacloud.com/v1 kind: AlbConfig metadata: #alb名称name: ingress-alb spec:config:name: ingress-albaddressType: InternetzoneMappings:# 两个交换…

ESP32学习之定时器和PWM

一.定时器代码如下&#xff1a; #include <Arduino.h>hw_timer_t *timer NULL; int interruptCounter 0;// 函数名称&#xff1a;onTimer() // 函数功能&#xff1a;中断服务的功能&#xff0c;它必须是一个返回void&#xff08;空&#xff09;且没有输入参数的函数 //…

Redis 哨兵模式

哨兵模式 自动选举 Redis 主服务器&#xff08;当主服务器宕机时&#xff09; 在 Redis2.8 之前&#xff0c;采用手动配置主从机的形式&#xff08;会导致一段时间服务不可用&#xff09; Redis2.8 之后&#xff0c;Redis正是提供了 Sentinel&#xff08;哨兵&#xff09;来解…

逆向Android开发工程,抓包!抓包!学习哪里?

抓包是什么&#xff1f; 在Android逆向工程中&#xff0c;抓包是一项重要的技术&#xff0c;用于获取手机应用程序与服务器之间的通信数据。通过抓包&#xff0c;可以分析应用程序的网络请求&#xff0c;获取请求的URL、参数、响应数据等信息&#xff0c;对应用程序的行为进行…

Python编程入门基础及高级技能、Web开发、数据分析和机器学习与人工智能

文章目录 入门基础安装 Python 环境&#xff0c;选择一个 IDE&#xff0c;如 PyCharm、VSCode等。学习基本语法&#xff1a;变量、数据类型、条件语句、循环语句、函数、异常处理等。熟悉标准库&#xff1a;常用模块、内置函数等。学习基本的面向对象编程&#xff08;OOP&#…