将网站域名访问从http升级到https(腾讯云/阿里云)

文章目录

  • 1.前提说明
  • 2.服务器安装 docker 与 nginx
    • 2.1 安装 docker
      • 🍀 基于 centos 的安装
      • 🍀 基于ubuntu
    • 2.2 配置阿里云国内加速器
      • 🍀 找到相应页面
      • 🍀 创建 docker 目录
      • 🍀 创建 daemon.json 文件
      • 🍀 重新加载服务配置文件
      • 🍀 重启 docker 引擎
    • 2.3 安装 nginx
      • 🍀 创建文件夹
      • 🍀 创建 nginx 配置文件
      • 🍀 创建 nginx
  • 3.免费 SSL 证书申请
    • 3.1 SSL 证书概述
    • 3.2 将想绑定证书的域名加入 DNS 解析
    • 3.3 提交证书申请
      • 🍀 定位控制台
      • 🍀 开始申请免费证书
      • 🍀 提交证书申请
    • 3.4 验证域名
      • 🍀 在服务器上创建验证文件
      • 🍀 验证域名所属权
      • 🍀 审核通过
  • 4.https 网站部署
    • 4.1 证书上传到服务器
      • 🍀 证书下载
      • 🍀 修改文件名
      • 🍀 上传到服务器
    • 4.2 修改 nginx.conf 配置文件
    • 4.3 添加 index.html
    • 4.4 测试 https
  • 5.总结
    • 5.1 你可能遇到的问题
    • 5.2 静态网站的部署

1.前提说明

这里我以在 腾讯云 的操作为例进行演示,对域名 note.zhulang.love 进行 https 升级访问,每一步操作均以文字、截图或与代码形式进行了说明。

我们需要准备:

  • 一台腾讯云服务器,为了方便,建议你把防火墙所有端口开放(至少保证 80 与 443 端口的开放)
  • 拥有自己的域名,并且已经完成了备案

关于网站部署,本文中我会在服务器使用 docker 安装 nginx 1.24,并在 nginx 中安装 SSL 证书,同时我会写一个简单的 index.html 模拟我们的网站。

2.服务器安装 docker 与 nginx

2.1 安装 docker

🍀 基于 centos 的安装

  1. 安装yum-utils

    sudo yum install -y yum-utils
    
  2. 从国内服务器上下载docker

    sudo yum-config-manager \--add-repo \http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
    
  3. 安装docker

    sudo yum install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
    
  4. 验证是否成功

    sudo docker --version
    

🍀 基于ubuntu

  1. 安装需要的包

    sudo apt-get update
    
  2. 安装依赖包,选择 y

    sudo apt-get install \apt-transport-https \ca-certificates \curl \gnupg-agent \software-properties-common
    
  3. 添加 阿里 GPG 密钥

    curl -fsSL https://mirrors.aliyun.com/docker-ce/linux/ubuntu/gpg | sudo apt-key add -
    
  4. 设置远程仓库

    sudo add-apt-repository \"deb [arch=amd64] https://download.docker.com/linux/ubuntu \$(lsb_release -cs) \stable"
    
  5. 安装 Docker-CE

    sudo apt-get update# 选择 y
    sudo apt-get install docker-ce docker-ce-cli containerd.io
    
  6. 验证是否成功

    sudo docker --version
    

2.2 配置阿里云国内加速器

国内镜像中心常用的为阿里云与网易云,选择其中一个加速器进行配置即可,这里我们选择使用阿里云加速器。在本地 Docker 中指定要使用的国内加速器地址后,就可以直接从国内镜像中心下载镜像了。

🍀 找到相应页面

若要配置阿里云加速器,必须首先要有阿里云的账号。登录阿里云后,打开阿里云的容器镜像服务页面,然后找到如下页面,可以查看到你的 registry-mirrors

image-20231008171636964

🍀 创建 docker 目录

sudo mkdir -p /etc/docker

🍀 创建 daemon.json 文件

注意,该 json 数据中的 URL 地址是与用户登录账号绑定的,不同的用户所生成的地址是不同的。

sudo vim /etc/docker/daemon.json

将你的阿里云账号的 registry-mirrors 替换以下的值,放入 daemon.json 中:

{"registry-mirrors": ["https://********.mirror.aliyuncs.com"]
}

🍀 重新加载服务配置文件

sudo systemctl daemon-reload

🍀 重启 docker 引擎

sudo systemctl restart docker

2.3 安装 nginx

🍀 创建文件夹

# 创建 nginx 用于数据卷的文件夹与存放用于验证域名获取 SSL 证书的文件
sudo mkdir -p /app/nginx/html/.well-known/pki-validation/# 创建用于存放 ssl 证书的文件夹
sudo mkdir /app/nginx/ssl# 添加权限,方便上传网站项目
sudo chmod 777 /app/nginx/html# 添加权限,方便上传 ssl 证书
sudo chmod 777 /app/nginx/ssl

🍀 创建 nginx 配置文件

# 这个 nginx 文件的配置只是临时的,用于验证域名以申请 SSL 证书
sudo vim /app/nginx/nginx.conf
#user  root;
error_log  /var/log/nginx/error.log notice;
worker_processes  1;pid        /var/run/nginx.pid;events {worker_connections  1024;
}
http {include       mime.types;default_type  application/octet-stream;sendfile        on;keepalive_timeout  65;gzip	on;gzip_types	application/javascript; server {listen       80;# 可进行域名绑定server_name  localhost;location / {root   html;index  index.html index.htm;}}
}

🍀 创建 nginx

sudo docker run \
--name nginx \
-v /app/nginx/nginx.conf:/etc/nginx/nginx.conf \
-v /app/nginx/html:/etc/nginx/html \
-v /app/nginx/ssl:/etc/nginx/ssl \
-p 443:443 \
-p 80:80 \
-d nginx:1.24
# 验证创建并运行成功
sudo docker ps

3.免费 SSL 证书申请

3.1 SSL 证书概述

SSL 证书(SSL Certificates)提供了安全套接层(SSL)证书的一站式服务,包括证书申请、管理及部署功能,与顶级的数字证书授权(CA)机构和代理商合作,为您的网站、移动应用提供 HTTPS 解决方案。

个人账号原来最多只能申请20张免费证书,现在个人账号最多可申请50张免费证书(其中20张免费证书支持绑定全网域名,30张免费证书可绑定腾讯云域名)。

3.2 将想绑定证书的域名加入 DNS 解析

🏠 我的解析 - 云解析 DNS - 控制台 (tencent.com)

💭 这里我想绑定的域名是 note.zhulang.love

image-20231009143349689

image-20231009143749738

3.3 提交证书申请

🍀 定位控制台

🏠 我的证书 - SSL 证书 - 控制台 (tencent.com)

如果你从未申请过,那么显示应该如下图:

image-20230413094046314

如果你申请过,那么显示应该如下图:

image-20231008164310798

🍀 开始申请免费证书

image-20230413094259474

image-20231008164422868

🍀 提交证书申请

image-20231009142651234

3.4 验证域名

image-20231009161548900

🍀 在服务器上创建验证文件

# 你需要修改 E16F38EDEA0071179D4B78CBE5E55B6E.txt 为上图中你的文件名
sudo vim /app/nginx/html/.well-known/pki-validation/E16F38EDEA0071179D4B78CBE5E55B6E.txt

文件内容放入到 E16F38EDEA0071179D4B78CBE5E55B6E.txt 文件中,我这里是:

0BE098CC9804A183E3E95E82F215DE3501F4FFF30950F518A366874A8EB601E0
trust-provider.com
cmcdtcvpl0q5ln

🍀 验证域名所属权

image-20231009180216677

🍀 审核通过

image-20231009180343484

image-20231009180504695

4.https 网站部署

4.1 证书上传到服务器

🍀 证书下载

image-20231009180743766

image-20231009180826102

image-20231009181119444

红色框框中的两个文件 .key.crt 是我们需要上传到服务器的。

🍀 修改文件名

为了方便演示,我们将需要上传的服务器的 .key.crt 文件分别重命名为 ssl.keyssl.crt

image-20231009181416484

🍀 上传到服务器

我们将 ssl.keyssl.crt 都上传到 /app/nginx/ssl 目录下。

image-20231009181730843

4.2 修改 nginx.conf 配置文件

# 先直接删除原来的 nginx.conf
sudo rm /app/nginx/nginx.conf# 创建新的
sudo vim /app/nginx/nginx.conf

下面是 nginx.conf 的内容,你只需要修改一下两个 server 块中的 server_name 的值为你自己申请的域名即可。

#user  root;
error_log  			/var/log/nginx/error.log warn; 	# 错误日志路径和日志级别
worker_processes 	auto;   						# Nginx工作进程数,通常设置为CPU核数
pid        			/var/run/nginx.pid;# 定义事件模块
events {worker_connections 	1024;	# 每个工作进程最大并发连接数use 				epoll; 	# 使用epoll网络模型,提高性能multi_accept 		on; 	# 开启支持多个连接同时建立
}# 定义HTTP服务器模块
http {# 定义MIME类型include       		mime.types;default_type  		application/octet-stream;sendfile        	on;keepalive_timeout  	65;gzip  				on; # 启用压缩,可以提高网站访问速度gzip_min_length 	1k; # 最小压缩文件大小gzip_types 			text/plain text/css application/json application/javascript application/xml; # 被压缩的类型server {listen 80;# 将 server_name 的值修改为你自己的域名 ******************************server_name 				note.zhulang.love;rewrite ^(.*) https://$server_name$1 permanent; # 如果是 http 请求,则永久重定向到 https 请求}server {listen 						443 ssl;  # 1.1 版本后这样写# 将 server_name 的值修改为你自己的域名 ******************************server_name 				note.zhulang.love;ssl_certificate      		/etc/nginx/ssl/ssl.crt;ssl_certificate_key  		/etc/nginx/ssl/ssl.key;ssl_session_cache			shared:SSL:1m; # 加密访问缓存设置,可以大大提高访问速度ssl_session_timeout 		10m;ssl_protocols 				TLSv1 TLSv1.1 TLSv1.2 TLSv1.3; ssl_ciphers 				HIGH:!aNULL:!MD5;ssl_prefer_server_ciphers 	on;fastcgi_param  				HTTPS        on;fastcgi_param  				HTTP_SCHEME  https;location / {root   html;index index.html index.htm;}}
}

4.3 添加 index.html

为了方便测试,我们在 /app/nginx/html 文件夹下添加一个 index.html 文件:

sudo vim /app/nginx/html/index.html

index.html 文件内容:

<!DOCTYPE html>
<html lang="zh-CN"><head><meta charset="UTF-8"><title>Document</title>
</head><body>欢迎访问<a href="https://www.zhulang.love" target="_blank" style="color: green;">狐狸半面添的客栈</a>,持续的实战开发技术分享与编程指南。
</body></html>

4.4 测试 https

我们先将 nginx 服务器重启:

sudo docker restart nginx

然后使用 https 访问你自己的域名,我这里就是访问:https://note.zhulang.love

image-20231010015320612

5.总结

5.1 你可能遇到的问题

如果你使用 https 进行访问遇到:

b965b63fb3c9a9fdd64aa74219703a1

那么请检查你的服务器防火墙是否将 443 端口开放,当然,也请把 80 端口开放。

5.2 静态网站的部署

你只需要将你的静态项目文件放置在 /app/nginx/html 目录下即可。

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

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

相关文章

基于工业5G网关的工业机器人监测控制方案

随着智能制造、自动化生产的发展进步&#xff0c;工业机器人的身影越来越多地出现在工厂现场&#xff0c;成为新型无人化、智能化生产制造的中坚力量。 工业机器人的运行伴生着海量的数据采集、传输、分析和反馈执行&#xff0c;因此也需要高速、低延迟的5G网络&#xff0c;支撑…

基于SpringBoot的健身房管理系统

目录 前言 一、技术栈 二、系统功能介绍 会员信息管理 员工信息管理 会员卡类型管理 健身项目管理 会员卡管理 三、核心代码 1、登录模块 2、文件上传模块 3、代码封装 前言 随着信息技术在管理上越来越深入而广泛的应用&#xff0c;管理信息系统的实施在技术上已逐步…

PowerManagerServcie

PowerManagerServcie&#xff08;PMS&#xff09; 1. 电源管理架构2.电源管理4个层次3.电源管理服务 - PowerManagerService 1. 电源管理架构 PowerManagerService是android系统电源管理的核心服务。 PowerManagerService继承自SystemService,在SystemServer的main()方法中&am…

Python 单元测试设置

单元测试检查特定代码单元或模块是否按照开发人员的预期执行。 大多数时候&#xff0c;我们测试的代码单元是一个函数。 同样&#xff0c;我们可以测试所有功能。 作为最佳实践&#xff0c;至少在开发过程中&#xff0c;我们应该进行单元测试。 因此&#xff0c;在开发过程的…

windows创建服务:更新服务信息乱码问题(ChangeServiceConfig)

因为小项目需要创建windows服务&#xff0c;安装微软官方示例一切都挺顺利&#xff0c;代码运行后发现配置的信息在系统里显示乱码。打开注册表发现的确是乱码。这就排除软件读取得问题&#xff0c;而是调用ChangeServiceConfig系统函数写入时就发生了乱码。让我在网上查找了一…

读书笔记-《ON JAVA 中文版》-摘要26[第二十三章 注解]

文章目录 第二十三章 注解1. 基本语法1.1 基本语法1.2 定义注解1.3 元注解 2. 编写注解处理器2.1 编写注解处理器2.2 注解元素2.3 默认值限制 3. 使用javac处理注解4. 基于注解的单元测试5. 本章小结 第二十三章 注解 注解&#xff08;也被称为元数据&#xff09;为我们在代码…

Web应用-Thinkphp框架-开发指南

Thinkphp框架 二级导航分类&#xff0c;模板继承&#xff0c;内置标签Public 修改MVC模块化 ——访问机制传参加载模版模版引入 分离Runtime 缓存文件管理员添加数据验证及验证场景 控制器 validate 在sql执行&#xff08;敏感操作&#xff09;之前验证数据模板 分页数据表连接…

nextjs构建服务端渲染,同时使用Material UI进行项目配置

一、创建一个next项目 使用create-next-app来启动一个新的Next.js应用&#xff0c;它会自动为你设置好一切 运行命令: npx create-next-applatest 执行结果如下&#xff1a; 启动项目&#xff1a; pnpm dev 执行结果&#xff1a; 启动成功&#xff01; 二、安装Mater…

深入理解强化学习——标准强化学习和深度强化学习

分类目录&#xff1a;《深入理解强化学习》总目录 强化学习的历史 早期的强化学习&#xff0c;我们称其为标准强化学习。最近业界把强化学习与深度学习结合起来&#xff0c;就形成了深度强化学习&#xff08;Deep ReinforcemetLearning&#xff09;。因此&#xff0c;深度强化…

C语言中常用的字符串处理函数(strlen、strcpy、strcat、strcmp)

文章目录 写在前面1. strlen1.1 函数介绍1.2 模拟实现 2. strcpy2.1 函数介绍2.2 模拟实现 3. strcat3.1 函数介绍3.2 模拟实现 4. strcmp4.1 函数介绍4.2 模拟实现 写在前面 本篇文章介绍了C语言中常用的字符串处理函数&#xff0c;包括strlen、strcpy、strcat和strcmp。文章…

[开源]基于流程编排的自动化测试工具,插件驱动,测试无限可能

一、开源项目简介 流程编排&#xff0c;插件驱动&#xff0c;测试无限可能 一款基于流程编排的自动化测试工具 二、开源协议 使用Apache-2.0开源协议 三、界面展示 四、功能概述 在软件开发旅程中&#xff0c;测试流程的管理和执行常常是复杂且耗时的挑战。传统测试工具主…

云原生Kubernetes:K8S集群版本升级(v1.20.15 - v1.22.14)

目录 一、理论 1.K8S集群升级 2.集群概况 3.升级集群&#xff08;v1.21.14&#xff09; 4.验证集群&#xff08;v1.21.14&#xff09; 5.升级集群&#xff08;v1.22.14&#xff09; 6.验证集群 (v1.22.14) 二、实验 1.升级集群&#xff08;v1.21.14&#xff09; 2.验…