将网站域名访问从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.mzph.cn/news/100617.shtml

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

相关文章

小程序如何设置各种时间参数

在小程序管理员后台->基本设置处&#xff0c;可以设置各种时间。例如待支付提醒时间、待支付取消时间、自动发货时间、自动收货时间、自动评价时间等等。下面具体解释一下各个时间的意思。 1. 待支付提醒时间&#xff1a;在用户下单后&#xff0c;如果一段时间内没有完成支付…

Ajax跨域访问,访问成功但一直走error不走success的的问题解决

Ajax跨域访问,访问成功但一直走error不走success的的问题解决 通过搜索各种资料&#xff0c;终于解决啦&#xff0c;废话不多说了&#xff0c;还是老规矩直接上代码&#xff1a; 我这里用了jsonp&#xff0c;有想了解的点击 : jsonp 前端代码&#xff1a; $.ajax({type:post…

03黑马店评-添加商户缓存和商户类型的缓存到Redis

商户查询缓存 什么是缓存 实际开发过程中数据量可以达到几千万,缓存可以作为避震器防止过高的数据访问猛冲系统,避免系统内的操作线程无法及时处理信息而瘫痪 缓存(Cache)就是数据交换的缓冲区(储存临时数据的地方),我们俗称的"缓存"实际就是缓冲区内的数据(一般从…

Docker与Serverless计算的集成: Docker容器如何与Serverless计算结合。

文章目录 1. Docker容器的可移植性2. Serverless计算的自动伸缩性3. 使用Serverless与Docker容器a. 自托管Serverless平台b. 使用容器服务 4. 使用案例&#xff1a;图像处理服务5. 结论 &#x1f388;个人主页&#xff1a;程序员 小侯 &#x1f390;CSDN新晋作者 &#x1f389;…

【常用页面记录】vue+elementUI实现搜索框+上拉加载列表

一、代码 <template><div class"mainBox"><div class"headbox"><el-input placeholder"请输入文件名称搜索" prefix-icon"el-icon-search" v-model"fileName" :clearable"true" change&qu…

【Linux服务端搭建及使用】

连接服务器的软件&#xff1a;mobaxterm 设置root 账号 sudo apt-get install passwd #安装passwd 设置方法 sudo passwd #设置root密码 su root #切换到root账户设置共享文件夹 一、强制删除原有环境 1.删除python rpm -qa|grep pytho…

获取西华大学新闻网站信息(爬虫样例)

利用python的爬虫功能进行信息爬取&#xff0c;关键在于源码分析&#xff0c;代码相对简单。 1 源代码分析 访问网站&#xff0c;按下F12&#xff0c;进行元素查找分析。 2 代码实现 from requests import get from bs4 import BeautifulSoupdef getXhuNews(pageNum1):&qu…

【每日一记】OSPF区域划分详讲、划分区域的优点好处

个人名片&#xff1a; &#x1f43c;作者简介&#xff1a;一名大二在校生&#xff0c;喜欢编程&#x1f38b; &#x1f43b;‍❄️个人主页&#x1f947;&#xff1a;小新爱学习. &#x1f43c;个人WeChat&#xff1a;hmmwx53 &#x1f54a;️系列专栏&#xff1a;&#x1f5bc…

家政服务行业做开发微信小程序可以实现什么功能

家政服务行业开发微信小程序可以实现多种功能&#xff0c;从而提升服务品质和效率&#xff0c;下面我们来详细介绍一些可能实现的功能。 一、展示服务信息 家政服务微信小程序可以展示各种服务信息&#xff0c;包括各类家政服务项目、价格、服务流程、服务人员信息等。用户可以…

岛屿的数量

题目描述 给你一个由 ‘1’&#xff08;陆地&#xff09;和 ‘0’&#xff08;水&#xff09;组成的的二维网格&#xff0c;请你计算网格中岛屿的数量。 岛屿总是被水包围&#xff0c;并且每座岛屿只能由水平方向和/或竖直方向上相邻的陆地连接形成。 此外&#xff0c;你可以…

通过后台系统添加一段div,在div中写一个<style></style>标签来修改div外面的元素的深层元素的样式

先看图 btn元素就是通过后台系统加上的元素,现在需要通过在btn里面写一个style标签来修改grid-nine里面的head元素的高度.开始想通过style来修改,但是不知道怎么去获取这个div外面的元素,想通过js方法去修改,写了script标签加了js代码,但不生效,后面问了才知道,这个项目是vue打…

MES系统安灯管理:实时可视化生产线状态

一、MES系统安灯管理的意义&#xff1a; 安灯管理是指通过使用不同颜色的灯光信号来表示生产线的状态&#xff0c;以便生产人员能够直观地了解生产线的运行情况。MES系统安灯管理的意义在于提供一个实时可视化的工具&#xff0c;使制造企业能够及时发现生产线异常和潜在问题&a…

light client轻节点简介

1. 引言 前序博客&#xff1a; Helios——a16z crypto构建的去中心化以太坊轻节点 去中心化和自我主权对于Web3的未来至关重要&#xff0c;但是这些理想并不总适用于每个项目或应用程序。在非托管钱包和bridges等工具中严格优先考虑安全性而不是便利性的用户&#xff0c;可选…

设计模式 - 结构型模式考点篇:适配器模式(类适配器、对象适配器、接口适配器)

目录 一、适配器模式 一句话概括结构式模式 1.1、适配器模式概述 1.2、案例 1.2.1、类适配器模式实现案例 1.2.2、对象适配器 1.2.3、接口适配器 1.3、优缺点&#xff08;对象适配器模式&#xff09; 1.4、应用场景 一、适配器模式 一句话概括结构式模式 教你将类和对…

阿里云上了新闻联播

我是卢松松&#xff0c;点点上面的头像&#xff0c;欢迎关注我哦&#xff01; 阿里新任的CEO吴泳铭上央视新闻联播了! 在昨天的新闻联播里&#xff0c;出席科技座谈会&#xff0c;有一个特别镜头&#xff0c;出现了阿里新任CEO吴泳铭的镜头。 这个信号意义明显&#xff0c;我…

kali linux安装redis

官网&#xff1a;Install Redis from Source | Redis wget https://download.redis.io/redis-stable.tar.gztar -xzvf redis-stable.tar.gz cd redis-stable make显示如下即可进入下一步 sudo make installredis-server 可以看到已经可以使用了。 但是由于第一次使用导致了re…

Rust专属开发工具——RustRover发布

JetBrains最近推出的Rust集成开发工具——RustRover已经发布&#xff0c;官方网站&#xff1a;RustRover: Rust IDE by JetBrains JetBrains出品过很受欢迎的开发工具IntelliJ IDEA、PyCharm等。 RustRover优势 Rust集成环境&#xff0c;根据向导可自动下载安装rust开发环境提…

Centos7中安装Jenkins教程

1.必须先配置jdk环境&#xff0c;安装jdk参考 Linux配置jdk 2.先卸载Jenkins # rpm卸载 rpm -e jenkins # 检查是否卸载成功 rpm -ql jenkins # 彻底删除残留文件 find / -iname jenkins | xargs -n 1000 rm -rf 3.安装Jenkins 在 /usr/ 目录下创建 jenkins文件夹 mkdir -p je…

Maven 构建Java项目

Maven 使用原型 archetype 插件创建项目。要创建一个简单的 Java 应用&#xff0c;我们将使用 maven-archetype-quickstart 插件。 在下面的例子中&#xff0c;我们将在 C:\MVN 文件夹下创建一个基于 maven 的 java 应用项目。 命令格式如下&#xff1a; mvn archetype:gene…