让你的网站免费支持 HTTPS 及 Nginx 平滑升级

news/2024/5/22 4:13:39/文章来源:https://blog.csdn.net/weixin_30512785/article/details/94888494

为什么要使用 HTTPS ?

首先来说一下 HTTP 与 HTTPS 协议的区别吧,他们的根本区别就是 HTTPS 在 HTTP 协议的基础上加入了 SSL 层,在传输层对网络连接进行加密。简单点说在 HTTP 协议下你的网站是光着身子在奔跑,但到了 HTTPS 下你穿了一件衣服,别人看不到你的肌肉了(当然,这好像不是好事,不重要),更安全了一点点,就大概这个意思。
SSL 依靠证书来验证服务器的身份,并为浏览器和服务器之间的通信加密。采用 HTTPS 的服务器必须从证书颁发机构 CA(Certificate Authority)申请一个用于证明服务器用途类型的证书,当然一般都有收费,而且不便宜,其实你也可以通过 OpenSSL 自己造一个证书,这样有一个弊端是大家都不信任你造的证书。那怎么办?

你必须知道的步骤

通过上面的简单介绍你应该知道了,要想你的网站支持 HTTPS ,就必须有一个被信任的证书,那这个证书就必须由证书颁发机构(如VeriSign、Microsoft等)颁发的,否则你就会遇到如打开 12306.cn 这样的您的连接不是私密连接的尴尬。
12306.cn.png

你肯定不想用户打开后,你的网站是上面这样的,身边有好多朋友买票时问过我这是什么意思?我都没办法解释给他们,哎。所以你需要要有下面几个东西:

  • 一个域名(你肯定有)
  • Web 服务器(Nginx,Apache,IIS都行)
  • SSL 证书(最好 CA 机构颁发的)

就完了,上面三个东西可能最麻烦就是搞到一个被全世界都信任的证书了,没关系,现在我试着让你免费获取一个,注意是免费!!!
提供免费的证书商也就那么几个,最知名的可能是 StartSSL ,其他我还知道 Let's Encrypt ,不过这里我用的是国内腾讯云的。

感谢腾讯云

对于得到一个受信任的证书很简单,找第三方证书颁发机构购买就行了,但是一个每年大几千的证书费用对于小企业或个人来说,有点接受不了,或者是没钱。现在好了,腾讯云认证用户可以申请到赛门铁克(Symantec)免费的 TrustAsia DV SSL 证书了。

登录腾讯云管理平台
SSL 证书申请地址在这里: https://console.qcloud.com/ssl ,点击申请证书,会弹出下面的框:
申请证书.png

上面显示什么价值1900元/年,不要管,点击确认按钮。弹出表单你填写你要绑定的域名就行了:
申请1.png

接下来会验证你的域名,简单说就是验证一下这个域名是不是你的,所以你要在域名解析添加一条 CName 记录,实在不懂的话,官方也有怎么添加的文档。
cname.png

一般验证过程会很快,几个小时吧,申请通过后,这时候你看到状态是已颁发后,就能下载证书了。
证书详情-完成.png

下载下来你打开文件会看到Nginx,Apache,IIS三个文件夹,里边放的就是对应各个服务器的证书。到这里,整个证书申请流程就算完了,接下来就是配置 Web 服务器来支持网站的 HTTPS 访问了。我这里用的 Nginx 演示。

Nginx 平滑升级以支持 HTTPS

要想让 Web服务器支持 HTTPS ,首先你的服务器肯定要支持 SSL ,所以我们先检查 Nginx 是否支持 SSL :

/usr/local/nginx/sbin/nginx -V

arguments.png

通过命令显示信息,我们看configure arguments中是否有 -with-http_ssl_module字样,如果像我这样没有的话,你就需要重新编译 Nginx 以支持 SSL 了。如果有,请跳过这步骤,直接看Nginx 配置 HTTPS 服务那一节。

安装 Nginx 可能大家都会,不会的可以看 从零开始学 Java - CentOS 下安装 Nginx ,但是平滑升级 Nginx 可能你没有体验过,这样说吧,在线上服务器环境下,你要支持 HTTPS 访问,但是你发现你的 Nginx 不支持 SSL ,你肯定不能卸载 Nginx 重新安装时加载 SSL 模块,因为那是线上服务器。你只能在现有安装的 Nginx 下进行无痛升级以以支持 SSL ,这就用到了 Nginx 的 平滑升级 概念。

找到你之前安装 Nginx 时的编译目录,如果你和我一样找不到或许删除了,那我们就需要重新下载一个 Nginx 了,当然我们是通过 wget 方式,看命令:

wget -c https://nginx.org/download/nginx-1.10.1.tar.gz
tar -zxvf nginx-1.10.1.tar.gz
cd nginx-1.10.1

配置,加入 SSL 模块:

./configure --with-http_ssl_module
make

configure.png

注意,千万不能在像安装的时候make install了,因为我们这是升级。

备份原 Nginx 执行脚本

mv /usr/local/nginx/sbin/nginx /usr/local/nginx/sbin/nginx.old

把新版本 Nginx 编译脚本放到可执行文件目录下

cd objs/
cp nginx /usr/local/nginx/sbin/

mv_cp.png

进行平滑升级,命令:

make upgrade

upgrade.png
这时候会输出这些信息:

/usr/local/nginx/sbin/nginx -t
nginx: the configuration file /usr/local/nginx/conf/nginx.conf syntax is ok
nginx: configuration file /usr/local/nginx/conf/nginx.conf test is successful
kill -USR2 `cat /usr/local/nginx/logs/nginx.pid`
sleep 1
test -f /usr/local/nginx/logs/nginx.pid.oldbin
kill -QUIT `cat /usr/local/nginx/logs/nginx.pid.oldbin`

没问题之后接下来,查看现在目前版本及安装模块:

/usr/local/nginx/sbin/nginx -V

nginx-v.png
看到已经从 1.4.6 版本升级到了 1.10.1,而且这种升级不影响正常访问的。线上环境操作也是可以的。

Nginx 配置 HTTPS 服务

编辑配置文件:

cd /usr/local/nginx/conf
vim nginx.conf

拉到最下面,会看到 HTTPS 配置被注释掉了。嗯,这是模板,我们就在这配置。

Nginx_Conf.png

文字版:

server {listen       443 ssl;server_name  www.domain.com;ssl on;ssl_certificate 1_www.domain.com_bundle.crt;ssl_certificate_key 2_www.domain.com.key;ssl_session_timeout  5m;ssl_protocols TLSv1 TLSv1.1 TLSv1.2;ssl_ciphers  ECDHE-RSA-AES128-GCM-SHA256:HIGH:!aNULL:!MD5:!RC4:!DHE;ssl_prefer_server_ciphers  on;location / {root   html;index  index.html index.htm;}
}

把上面的ssl_certificatessl_certificate_key替换成你下载下来的证书存放路径就行,记着下载下来的证书这种配置是放在/usr/local/nginx/conf目录下的,当然你也可以随意放。

这时候,你就可以打开浏览器访问一下试试了。正常情况 HTTPS 请求是打不开的,因为我们还没设置防火墙,记得要开放443端口!,嗯,设置过防火墙就可以正常访问了吧。

其实到这里,这个服务器支持 HTTPS 请求流程已经结束了,但是你发现好多人在浏览器地址栏输入域名的时候都不输入http://https://的,因为浏览器会自动帮我们加上http://的,所以,这时候输入我们刚刚设置的域名其实还是没有走https://请求,那怎么让就是输入http://也走HTTPS呢?

很简单,Nginx 中这样配置就行啦!

server {listen  80;server_name  www.domain.com;rewrite ^(.*)$  https://$host$1 permanent;
}

我们利用rewrite来做跳转。监听到80端口的 HTTP 请求后,就转发到 HTTPS ,当然还有好多处理方式。

总结一下

这篇文章讲了一下怎么申请免费的 HTTPS 证书,然后利用 Nginx 服务器来配置 HTTPS 请求访问,并其中顺手平滑升级 Nginx,如丝般顺滑的升级,不影响正常访问。HTTPS 方式的传输对我们网站来说应该是提高了一些安全性的,况且这种方式又很简单,可以试着搞一搞。

转载于:https://www.cnblogs.com/mafly/p/https_nginx.html

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

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

相关文章

PHP网站漏洞poc,ThinkPHP-5.0.23新的RCE漏洞测试和POC

TP5新RCE漏洞昨天又是周五,讨厌周五曝漏洞,还得又得加班,算了,还是先验证一波。新的TP5RCE,据说发现者因为上次的RCE,于是又审计了代码,结果发现的。TP5也成了万人轮啊。测试环境搭建windows下p…

商城网站优化

在一次正常的活动促销之后,客服开始陆续反馈有用户反应在抢标的时候打不开网页或者APP,在打开的时候标的就已经被抢光了,刚开始没有特别的上心,觉得抢标不就是这样吗,抢小米手机的时候也不就这样吗?随着活动…

php 架构的网站 如何上传.sql文件到远程主机并用它部署数据库,技巧和诀窍: 如何上传一个.SQL文件到远程主机并且执行它来部署一个SQL数据库...

上个月 (英文),我讨论了新的(免费的)数据库发布向导,它是设计来充分简化在web主机环境中上传和部署 SQL Express 和 SQL Server数据库的。在 第一个关于数据库发布的贴子 (英文)里 ,我示范了你如何可以使用数据库发布向导自动生成 .SQL 安装文…

网站服务器间歇性打不开,网站打不开的常见原因之域名解析问题

建站是为了更好地进行宣传,引导访客订阅或成交消费,如果网站经常打不开,用户体验就会很差,对企业的影响也很大。相信大多数人都有类似的经历,兴致勃勃打开一个网站,结果半天没有响应,好不容易打…

iframe 无权限 不通网站_神马蜘蛛池 - 网站内页不收录的原因分析

原出处:最蜘蛛池原文链接:http://www.zuizhizhu.com神马蜘蛛池 www.zuizhizhu.com 快速提高网站收录、外推收录,百度蜘蛛池、搜狗蜘蛛池、360蜘蛛池、神马蜘蛛池、繁殖池、权重池;最蜘蛛池35台智能服务器,每天超千万蜘…

服务器上网站管理系统登录,云服务器管理平台 使用标准登录方式登录

WebShell 为腾讯云推荐的登录方式。无论您的本地系统为 Windows,Linux 或者 Mac OS,只要实例购买了公网 IP,都可以通过 WebShell 登录。本文介绍如何使用标准登录方式(WebShell)登录 Linux 实例。WebShell 优点如下:支持快捷键复制…

httppost传递内容过大_网站内容页的SEO排名技巧

SEO优化的意图是获取查找引擎流量,但在SEO履行中却需求分阶段周期进行,以此确保SEO方案的可行性以及SEO进程的可控性。按照引流的意图进行SEO进程倒推,想要获取查找引擎流量,需求的是关键词排名,获取关键词排名首先要确…

python网站登录爆破登录_用python爆破某会员网站

暑假在家上网,qq群里一位好友给我说他想要某个网站的会员,ps(是个小网站),本着助人为乐的精神我去踩了点。。。是吗然后就有了思路(骚操作)先讲一下思路1 .先注册用户登录2.flidder抓包3.python 模拟登录4.在评论区抓取评论的用户名5.弱密码爆…

用户体验分析:以 “师路南通网站” 为例

1、目标 针对师路南通,开展UX分析。PS:对比公众号;UMU学习平台(umu-umu)、学生安全教育平台(xueanquan123) *基于实例分析,体会用户体验设计的7条准则。 *功能测试脚本及Bug报告。 2…

wps怎么投递简历发到boss直聘_BOSS直聘、前程无忧、智联招聘……实测这个网站投简历效果好!...

又到了一年一度的“金三银四”招聘季作为职场人大家是不是开始蠢蠢欲动计划跳槽了?可那么多打着不同招牌的招聘网站伴随着海量的工作信息到底哪个网站最适合自己找工作投简历呢?今天,小编就带大家进入“非诚勿扰”之招聘网站专场看看哪个网站…

cms的html调用,浅谈CMSEasy企业网站内容调用经验

首先,打开CMSEasy免费企业网站的后台管理界面,选择“模板”,点击左侧“当前模板编辑”,在出现的内容也中,找到index.html找到index.html后,点击编辑,出现下图所示在出现上图内容后,烦…

门户网站建设方案ppt_智慧园区应用系统建设方案(ppt)

智慧园区总体规划设计方案(ppt)智慧园区整体规划设计方案(ppt)智慧园区总体架构解决方案(ppt)智慧园区整体规划设计方案(ppt)智慧园区大数据平台市县解决方案(图文)智慧工业园区安防集成系统总体方案(ppt)智慧园区公共服务云平台建设方案(ppt)智慧创业园区整体规划建设方案(ppt…

php 心愿墙系统源码,php开发表白墙 |源码|微信表白|微信表白墙|吐槽墙|心愿墙|网站留言板源码...

php开发表白墙 |源码|微信表白|微信表白墙|吐槽墙|心愿墙|网站留言板源码告白墙程序使用说明下载之后,文件目录如下:Forlove :程序核心文件夹;Public :样式图片 JS 文件夹,logo图片文件在这里面&#xff1b…

php系统网站安全吗,网站安全性设置

为了提高网站安全性,通常有服务器环境的安全策略和软件的安全策略,我们cms属于软件安全策略,并且支持多种方案:1、重命名后台入口文件在根目录找到默认的admin.php,任意命名一个名称即可,以后你就访问新名字…

艾宾浩斯计划表自动生成网站_施工进度计划表不会做?18个横道图自动生成模板,直接在线编辑...

施工进度计划表不会做?18个横道图自动生成模板,直接在线编辑对于工程建设来说,施工进度横道图在工程进度计划制定、项目管理等方面被广泛的应用,也是管理人员必须要掌握的技能,在编制的时候还是很繁琐的,需…

网站能拿到其他网站的cookie_网站标题这样写就能让你网站快排

网站SEO标题在搜索引擎优化中,是极其重要的存在。它甚至决定了网站排名的速度,决定了网站排名的位置,决定了我们抓取的用户类型。下面就给大家培训一下标题,教你们如何写出,快速排名的网站SEO标题。标题这样写让你的排…

php自动截屏,利用PhantomJS 自动截图Kibana ,phpmailer发送网站运营日报

如题,先来张最终效果运营日报下面介绍下实现过程【前期准备】kibana配置视图,并做好条件过滤视图,这里就是做介绍,可以参考博文,视图做好后生成一个短链接,这里我们生成的是http://10.0.0.110:5601/goto/4d…

本机的linux服务器地址是什么,linux检察本机ip和端口号的敕令是什么?_网站服务器运转保护...

linux检察本机ip的敕令是“ifconfig”敕令和“ip address”敕令;linux检察端口号的敕令是“lsof -i:port”敕令和“netstat -aptn”敕令。检察本机ip:1)ifconfig敕令输出以下:[roottopgun /home/cly]# ifconfigeth0: flags4163 mtu 1500inet …

Python3爬虫--两种方法(requests(urllib)和BeautifulSoup)爬取网站pdf

1、任务简介本次任务是爬取IJCAI(国际人工智能联合会议)最新2018年的pdf论文文件。 本次编码用到了正则表达式从html里面提取信息,如下对正则表达式匹配规则作简要的介绍。 2、正则表达式规则\w匹配字母数字及下划线 \W匹配非字母数字及下划线…

网站 服务器 和 空间大小,网站空间多大合适

网页空间网站空间大小,其实就是网站可以使用的以企业网站为例,如果网站程序的大小是10M,有1000个产品需要发布到网站上面。而网页上使用的图片一般每个不要超过200K(图片越大,用户打开网站的速度越慢)。这样,最多占用2…