当前位置: 首页 > news >正文

升级到https

现在很多站长都会考虑将自己的站点从http升级到https,不仅是基于安全的考虑,有的也是因为第三方平台的限制,如谷歌浏览器会将http站点标记为不安全的站点,微信平台要求接入的微信小程序必须使用https等。

那如何将一个http站点升级为https站点呢?

http与https的区别

为了数据传输的安全,https在http的基础上加入了ssl协议,ssl协议依靠证书来验证服务器的身份,并为浏览器和服务器之间的通信加密。要想将http升级为https,只需要给http站点增加一个CA证书即可。

目前获取CA证书有两种途径:

  • 购买收费的CA证书
  • 获取免费的证书

收费的CA证书各大服务提供商都有卖,如阿里云、腾讯云等。

image_ade956fd.png

收费的证书不便宜,从阿里云官方网站看,它的价格可以从几千元到上万元不等。

image_a8d0acb3.png

这对于小公司平台,甚至是个人站点来说,是一个不小的开支。

Letsencrypt是一个免费、自动化和开放的证书颁发机构,其颁发的证书一次有效期为三个月,但是只要能持续更新,基本可以永久使用。关注公众号互联网架构师,回复关键字2T,获取最新架构视频

今天推荐的这个脚本acme.sh,实现了 acme 协议, 可以帮你持续自动从Letsencrypt更新CA证书。

下载地址如下:

https://github.com/Neilpang/acme.sh

安装 acme.sh

安装acme.sh很简单,一个命令即可:

curl https://get.acme.sh | sh

普通用户和 root 用户都可以安装使用。安装过程进行了以下几步:

1、把acme.sh安装到你的home目录下:

~/.acme.sh/

并创建 一个 bash 的 alias,方便你使用:alias acme.sh=~/.acme.sh/acme.sh

2、自动为你创建 cronjob,每天 0:00 点自动检测所有的证书。如果快过期了,需要更新,则会自动更新证书,安装过程不会污染已有的系统任何功能和文件,所有的修改都限制在安装目录中: ~/.acme.sh/

生成证书

acme.sh 实现了 acme 协议支持的所有验证协议, 一般有两种方式验证:http 和 dns 验证。

1、http 方式需要在你的网站根目录下放置一个文件, 来验证你的域名所有权,完成验证,然后就可以生成证书了。关注公众号互联网架构师,回复关键字2T,获取最新架构视频

acme.sh --issue -d mydomain.com -d www.mydomain.com --webroot /home/wwwroot/mydomain.com/

acme.sh 会全自动的生成验证文件, 并放到网站的根目录,然后自动完成验证。最后会聪明的删除验证文件,整个过程没有任何副作用。

如果你用的是apache服务器,acme.sh 还可以智能的从 apache的配置中自动完成验证,你不需要指定网站根目录:

acme.sh --issue -d mydomain.com --apache

如果你用的是nginx服务器,或者反代,acme.sh还可以智能的从 nginx的配置中自动完成验证,你不需要指定网站根目录:

acme.sh --issue -d mydomain.com --nginx

注意:无论是 apache 还是 nginx 模式,acme.sh在完成验证之后,会恢复到之前的状态,都不会私自更改你本身的配置。好处是你不用担心配置被搞坏,但也有一个缺点,你需要自己配置 ssl 的配置,否则,只能成功生成证书,你的网站还是无法访问https。但是为了安全,你还是自己手动改配置吧。

如果你还没有运行任何 web 服务,80 端口是空闲的, 那么 acme.sh 还能假装自己是一个webserver, 临时听在80 端口,完成验证:

acme.sh --issue -d mydomain.com --standalone

2、dns 方式,在域名上添加一条 txt 解析记录,验证域名所有权。

这种方式的好处是,你不需要任何服务器,不需要任何公网 ip,只需要 dns 的解析记录即可完成验证。不过,坏处是,如果不同时配置 Automatic DNS API,使用这种方式 acme.sh 将无法自动更新证书,每次都需要手动再次重新解析验证域名所有权。

acme.sh --issue --dns -d mydomain.com

然后,acme.sh 会生成相应的解析记录显示出来,你只需要在你的域名管理面板中添加这条 txt 记录即可。

等待解析完成之后, 重新生成证书:

acme.sh --renew -d mydomain.com

注意:第二次这里用的是 --renew

dns 方式的真正强大之处在于可以使用域名解析商提供的 api 自动添加 txt 记录完成验证。

acme.sh 目前支持 cloudflare, dnspod, cloudxns, godaddy 以及 ovh 等数十种解析商的自动集成。

copy/安装 证书

前面证书生成以后,接下来需要把证书 copy 到真正需要用它的地方。

注意:默认生成的证书都放在安装目录下:~/.acme.sh/,请不要直接使用此目录下的文件。例如,不要直接让 nginx/apache 的配置文件使用这下面的文件。这里面的文件都是内部使用,而且目录结构可能会变化。

正确的使用方法是使用 --installcert 命令,并指定目标位置,然后证书文件会被copy到相应的位置,例如:

acme.sh --installcert -d <domain>.com \--key-file /etc/nginx/ssl/<domain>.key \--fullchain-file /etc/nginx/ssl/fullchain.cer \--reloadcmd "service nginx force-reload"

一个小提醒,这里用的是 service nginx force-reload,不是 service nginx reload,据测试, reload并不会重新加载证书,所以用的 force-reload。

Nginx 的配置 ssl_certificate 使用 /etc/nginx/ssl/fullchain.cer,而非 /etc/nginx/ssl/<domain>.cer ,否则 SSL Labs 的测试会报 Chain issues Incomplete 错误。

–installcert命令可以携带很多参数,来指定目标文件。并且可以指定 reloadcmd, 当证书更新以后,reloadcmd会被自动调用,让服务器生效。

值得注意的是,这里指定的所有参数都会被自动记录下来,并在将来证书自动更新以后,被再次自动调用。

更新证书

目前证书在 60 天以后会自动更新,你无需任何操作。今后有可能会缩短这个时间,不过都是自动的,你不用关心。

更新 acme.sh

目前由于 acme 协议和 Letsencrypt CA 都在频繁的更新,因此 acme.sh 也经常更新以保持同步。

升级 acme.sh 到最新版 :

acme.sh --upgrade

如果你不想手动升级, 可以开启自动升级:

acme.sh --upgrade --auto-upgrade

之后, acme.sh 就会自动保持更新了。

你也可以随时关闭自动更新:

acme.sh --upgrade --auto-upgrade 0

出错怎么办:

如果出错, 请添加 debug log:

acme.sh --issue ..... --debug

或者:

acme.sh --issue ..... --debug 2

最后,本文并非完全的使用说明,还有很多高级的功能,更高级的用法请参看其他 wiki 页面。

https://github.com/Neilpang/acme.sh/wiki

相关文章:

升级到https

现在很多站长都会考虑将自己的站点从http升级到https&#xff0c;不仅是基于安全的考虑&#xff0c;有的也是因为第三方平台的限制&#xff0c;如谷歌浏览器会将http站点标记为不安全的站点&#xff0c;微信平台要求接入的微信小程序必须使用https等。 那如何将一个http站点升…...

【C语言】数据结构-二叉树

主页&#xff1a;114514的代码大冒险 qq:2188956112&#xff08;欢迎小伙伴呀hi✿(。◕ᴗ◕。)✿ &#xff09; Gitee&#xff1a;庄嘉豪 (zhuang-jiahaoxxx) - Gitee.com 引入 我们之前已经学过线性数据结构&#xff0c;今天我们将介绍非线性数据结构----树 树是一种非线性的…...

c++中std::condition_variable最全用法归纳

前言 建议阅读以下文章前需先对建立 std::thread 多线程与std::mutex 锁有一定程度的熟悉 std::thread最全用法归纳 std::mutex最全用法归纳 概括 使用 std::condition_variable 的 wait 会把目前的线程 thread 停下来并且等候事件通知&#xff0c;而在另一个线程中可以使用…...

Python数据可视化:数据关系图表可视化

目录 1、散点图 1.1、趋势显示的二维散点图 1.2、分布显示的二维散点图 1.3、散点曲线图...

Urho3D约定

Urho3D使用以下约定和原则&#xff1a; 左手坐标系。正X、Y和Z轴指向右侧、上方和前方&#xff0c;正旋转为顺时针。度用于角度。顺时针顶点定义正面。音频音量指定为0.0&#xff08;静音&#xff09;到1.0&#xff08;全音量&#xff09;路径名使用斜杠而不是反斜杠。调用操作…...

python数据结构-列表,元组

列表 列表是Python中最通用的数据类型&#xff0c;可以写成方括号之间的逗号分隔值(项目)列表。 使用列表的重要事项是&#xff0c;列表中的项目不必是相同的类型。也就是说一个列表中的项目(元素)可以是数字&#xff0c;字符串&#xff0c;数组&#xff0c;字典等甚至是列表类…...

Properties类读配置文件、修改配置文件

Properties类简介(1)Properties类是专门用于读写配置文件的集合类(2)配置文件的后缀名为.properties,内容格式为:# 可以用“#”作为注释 键值 键值**注意:**键值对不需要有空格,值不需要用引号一起来。默认类型是String。键、值不可以是null(3)Properties类的方法可查找api文档…...

图解LeetCode——剑指 Offer 24. 反转链表

一、题目 定义一个函数&#xff0c;输入一个链表的头节点&#xff0c;反转该链表并输出反转后链表的头节点。 二、示例 示例: 【输入】 1->2->3->4->5->NULL 【输出】 5->4->3->2->1->NULL 限制&#xff1a; 0 < 节点个数 < 5000 三、…...

【C语言】“指针的运算”、“指针与数组”

文章目录一、指针运算1.指针 - 整数2.指针-指针3.指针关系运算二、指针与数组三、二级指针四、指针数组完结一、指针运算 指针可以进行整数&#xff0c;指针-指针&#xff0c;还有关系运算&#xff0c;其他的运算会被编译器阻止。 1.指针 - 整数 对指针进行的时候一定要注意不…...

Linux高级命令之查找文件命令

查找文件命令学习目标能够说出查找文件使用的命令1. find命令及选项的使用命令说明find在指定目录下查找文件(包括目录)find命令选项:选项说明-name根据文件名(包括目录名)字查找find命令及选项的效果图:2. find命令结合通配符的使用通配符:是一种特殊语句&#xff0c;主要有星…...

PyCharm+Docker:打造最舒适的深度学习炼丹炉

九、PyCharmDocker&#xff1a;打造最舒适的深度学习炼丹炉 安装docker&#xff1a; 如何在 Ubuntu 22.04 LTS 中安装 Docker 和 Docker Compose https://zhuanlan.zhihu.com/p/547169542 修改Linux硬盘卷标&#xff1a; ntfs文件系统&#xff1a;https://blog.csdn.net/n…...

【mock】手把手带你用mock写自定义接口+mock常用语法

mock自定义接口完整流程 官网语法规范:https://github.com/nuysoft/Mock/wiki/Syntax-Specification 首先: 要有一个项目,我这里是vue3项目,以下从vue3项目搭建开始,已搭建好的请直接看2 1.空目录下新建vue3项目 运行创建项目命令&#xff1a; 在bash中:(文件路径处输入cm…...

2023 年腾讯云服务器CVM快速配置购买教程,新手上云必备!

腾讯云服务器快速配置购买教程是新手必备的上云教程。主机教程网在本文中以腾讯云服务器为例&#xff0c;给大家带来一个完整的、手把手教学的服务器购买流程。助力快速完成服务器的购买、配置、以及网站的搭建&#xff0c;给新手节省宝贵的时间&#xff0c;避免采坑&#xff0…...

opencv显示图像

大家好&#xff0c;我是csdn的博主&#xff1a;lqj_本人 这是我的个人博客主页&#xff1a; lqj_本人的博客_CSDN博客-微信小程序,前端,python领域博主lqj_本人擅长微信小程序,前端,python,等方面的知识https://blog.csdn.net/lbcyllqj?spm1011.2415.3001.5343哔哩哔哩欢迎关注…...

C++:类和对象(中)

文章目录1 类的6个默认成员函数2 构造函数2.1 概念2.2 特性3 析构函数3.1 概念3.2 特性4 拷贝构造函数4.1 概念4.2 特性5 赋值运算符重载5.1 运算符重载5.2 赋值运算符重载5.3 前置重载和后置重载6 日期类的实现7 const成员8 取地址及const取地址操作符重载1 类的6个默认成员函…...

53. 最大子数组和

文章目录题目描述暴力法动态规划法分治法参考文献题目描述 给你一个整数数组 nums &#xff0c;请你找出一个具有最大和的连续子数组&#xff08;子数组最少包含一个元素&#xff09;&#xff0c;返回其最大和。 子数组 是数组中的一个连续部分。 示例 1&#xff1a; 输入&…...

基于Java+SpringBoot+SpringCloud+Vue前后端分离医院管理系统设计与实现

博主介绍&#xff1a;✌全网粉丝3W&#xff0c;全栈开发工程师&#xff0c;从事多年软件开发&#xff0c;在大厂呆过。持有软件中级、六级等证书。可提供微服务项目搭建、毕业项目实战、项目定制✌ 博主作品&#xff1a;《微服务实战》专栏是本人的实战经验总结&#xff0c;《S…...

QT基础入门【环境配置篇】linux桌面QT开发环境的构建以及问题解决

目录 一、下载QT的安装包 二、安装 1.执行以下命令开始安装 2.选择配置 三、启动...

Linux系统之部署企业内部静态导航页

Linux系统之部署企业内部静态导航页 一、本次实践目的二、检查本地系统环境1.检查系统版本2.检查内核版本三、下载静态导航页资源包1.创建下载目录2.下载资源包四、安装apache服务1.安装httpd2.复制网页文件3.重启httpd服务4.检查httpd服务状态五、访问导航页六、修改导航页网站…...

2023备战金三银四,Python自动化软件测试面试宝典合集(四)

接上篇&#xff1a;11、点击塞钱进红包&#xff0c;选择使用新卡付款&#xff0c;按照流程添加新卡&#xff0c;此时同样需要考虑金额>新卡余额&#xff0c;金额<新卡余额&#xff0c;金额新卡余额三种情况12、使用指纹确认付款(正确的/不正确的指纹)13、使用密码确认付款…...

算法训练营 day43 动态规划 不同路径 不同路径 II

算法训练营 day43 动态规划 不同路径 不同路径 II 不同路径 62. 不同路径 - 力扣&#xff08;LeetCode&#xff09; 一个机器人位于一个 m x n 网格的左上角 &#xff08;起始点在下图中标记为 “Start” &#xff09;。 机器人每次只能向下或者向右移动一步。机器人试图达…...

关联查询的SQL有几种情况

1、内连接&#xff1a;inner join … on 结果&#xff1a;A表 ∩ B表 2、左连接&#xff1a;A left join B on &#xff08;2&#xff09;A表全部 &#xff08;3&#xff09;A表- A∩B 3、右连接&#xff1a;A right join B on &#xff08;4&#xff09;B表全部 &#…...

查缺补漏三:事务隔离级别

什么是事务&#xff1f; 事务就是一组操作的集合&#xff0c;事务将整组操作作为一个整体&#xff0c;共同提交或者共同撤销 这些操作只能同时成功或者同时失败&#xff0c;成功即可提交事务&#xff0c;失败就执行事务回滚 MySQL的事务默认是自动提交的&#xff0c;一条语句执…...

没有她的通讯录(C语言实现)

&#x1f680;write in front&#x1f680; &#x1f4dd;个人主页&#xff1a;认真写博客的夏目浅石. &#x1f381;欢迎各位→点赞&#x1f44d; 收藏⭐️ 留言&#x1f4dd; &#x1f4e3;系列专栏&#xff1a;夏目的C语言宝藏 &#x1f4ac;总结&#xff1a;希望你看完之…...

Spring Security 从入门到精通

前言 Spring Security 是 Spring 家族中的一个安全管理框架。相比与另外一个安全框架Shiro&#xff0c;它提供了更丰富的功能&#xff0c;社区资源也比Shiro丰富。 一般来说中大型的项目都是使用SpringSecurity 来做安全框架。小项目有Shiro的比较多&#xff0c;因为相比与Spr…...

微信小程序Springboot vue停车场车位管理系统

系统分为用户和管理员两个角色 用户的主要功能有&#xff1a; 1.用户注册和登陆系统 2.用户查看系统的公告信息 3.用户查看车位信息&#xff0c;在线预约车位 4.用户交流论坛&#xff0c;发布交流信息&#xff0c;在线评论 5.用户查看地图信息&#xff0c;在线导航 6.用户查看个…...

看完这篇 教你玩转渗透测试靶机vulnhub——Hack Me Please: 1

Vulnhub靶机Hack Me Please: 1渗透测试详解Vulnhub靶机介绍&#xff1a;Vulnhub靶机下载&#xff1a;Vulnhub靶机安装&#xff1a;Vulnhub靶机漏洞详解&#xff1a;①&#xff1a;信息收集&#xff1a;②&#xff1a;漏洞利用③&#xff1a;获取反弹shell&#xff1a;④&#x…...

nodejs+vue地铁站自动售票系统-火车票售票系统vscode

地铁站自动售票系统主要包括个人中心、地铁线路管理、站点管理、购票信息管理、乘坐管理、用户信息管理等多个模块。它使用的是前端技术&#xff1a;nodejsvueelementui 前后端通讯一般都是采取标准的JSON格式来交互。前端技术&#xff1a;nodejsvueelementui,视图层其实质就是…...

Spring Security in Action 第十二章 OAuth 2是如何工作的?

本专栏将从基础开始&#xff0c;循序渐进&#xff0c;以实战为线索&#xff0c;逐步深入SpringSecurity相关知识相关知识&#xff0c;打造完整的SpringSecurity学习步骤&#xff0c;提升工程化编码能力和思维能力&#xff0c;写出高质量代码。希望大家都能够从中有所收获&#…...

天工开物 #5 我的 Linux 开发机

首先说一下结论&#xff1a;最终我选择了基于 Arch Linux[1] 的 Garuda Linux[2] 发行版作为基础来搭建自己的 Linux 开发机。Neofetch 时刻发行版的选择在上周末的这次折腾里&#xff0c;我一共尝试了 Garuda Linux 发行版&#xff0c;原教旨的 Arch Linux 发行版&#xff0c;…...

商丘专业做网站公司/网络营销推广公司

Eclipse January是Java中的一组常见数据结构&#xff0c;包括一个用于处理数字数据的强大库。 随着数据量和复杂性的急剧增加&#xff08;即所谓的“大数据”&#xff09;&#xff0c;Eclipse January提供了一个数字库&#xff0c;可以简化多维数组形式的数据的处理和操作。 库…...

招聘公司怎么做网站/国家职业技能培训学校

申明:本文来自b站springboot视频讲解笔记部分。b站链接&#xff1a;自动配置原理 本文主要讲三点&#xff1a;配置文件到底能写什么&#xff1f;怎么写&#xff1f;自动配置原理&#xff1b; 配置文件能配置的属性参照 1、自动配置原理&#xff1a; 1&#xff09;、SpringB…...

五星酒店网站建设方案/广西网络优化seo

一、单纯纹绣技术纹绣因人而异,突出个性设计,并且应用轻柔的手法,自然的色泽,进而达到即美化眉眼唇,又不留明显的修饰痕迹。1、绣眉目的&#xff1a;塑造眉型,改善稀疏或散乱眉型,视觉效果改善脸型,美化眉眼额头。适用人群&#xff1a;眉毛稀疏,散乱,下垂;或长期画眉者2、绣眼线…...

网站变移动网站/想要导航推广网页怎么做

最近工作中用到mysql&#xff0c;发现mysql和Oracle差别挺大的&#xff0c;其不像Oracle中存在丰富的分析函数(开窗函数)&#xff0c;如rank(),lag(),leaf()等&#xff0c;只能用变量来获取以便达到分析函数的效果&#xff0c;具体使用方法如下&#xff1a; eg: 想通过member…...

暗网网站有那些/网时代教育培训机构官网

方法一: 使用join的方法 >>> " ".join(["A","B","C","D"]) A B C D 方法二: 使用字符串格式化拼接 >>> "%ss age is %d" % ("Jerry", 18) "Jerrys age is 18" >>…...

网站开发需要多少钱推荐/球队世界排名榜

var zTree1;var setting;//树配置setting {async:true,nameCol:"name",asyncUrl:getAsyncUrl, //获取节点数据的URL地址showIcon:false, //是否显示图标asyncParam:["name", "id"], //获取节点数据时的数据名称callback:{beforeAsync:beforeAsy…...