首页 » 网站建设 » phptransfer跳转页面技巧_后台做事轻松切换HTTPS

phptransfer跳转页面技巧_后台做事轻松切换HTTPS

访客 2024-11-06 0

扫一扫用手机浏览

文章目录 [+]

这篇文章会大略先容https的连接过程,然后用go措辞实现一个大略的http做事,末了用例子演示了如何用nginx和腾讯负载均衡来改造http做事,使其切换到https。

一、为什么要拥抱https

https可以理解为http over ssl,既把http明文流量通过ssl协议进行加密传送,从而担保数据的安全性。
这里依赖的是非对称加密和对称加密。
网上干系先容的文章很多,大略列一下。

phptransfer跳转页面技巧_后台做事轻松切换HTTPS

客户端在利用HTTPS办法与Web做事器通信时有以下几个步骤,如图所示。

phptransfer跳转页面技巧_后台做事轻松切换HTTPS
(图片来自网络侵删)

(1)客户利用https的URL访问Web做事器,哀求与Web做事器建立SSL连接。

(2)Web做事器收到客户端要求后,会将网站的证书信息(证书中包含公钥)传送一份给客户端。

(3)客户真个浏览器与Web做事器开始协商SSL连接的安全等级,也便是信息加密的等级。

(4)客户真个浏览器根据双方赞许的安全等级,建立会话密钥,然后利用网站的公钥将会话密钥加密,并传送给网站。

(5)Web做事器利用自己的私钥解密出会话密钥。

(6)Web做事器利用会话密钥加密与客户端之间的通信。

引自:https://www.cnblogs.com/wqhwe/p/5407468.html

在http传输前建立了一个安全的加密通道。
几个地方小白可能不清晰,阐明下:

我们后面申请https的证书便是图中第1步返回的公钥,用于非对称加密。
非对称加密只是用于客户端和做事端之间,协商好一个对称加密的密钥,后面的内容都利用对称机密。
为什么不直接全部用非对称加密呢?由于非对称加密很慢,性能差;对称加密性能更高。

https的好处:

基于 SSL 证书,可将站点由 HTTP(Hypertext Transfer Protocol)切换到 HTTPS(Hyper Text Transfer Protocol over Secure Socket Layer)—— 即基于安全套接字层(SSL)进行安全数据传输的加密版 HTTP协议。

站点运用 HTTPS 后将有以下上风:

1. 防流量挟制

全站 HTTPS 是根治运营商、中间人流量挟制的办理方案,不仅可以杜绝网页中被插入的小广告,更可以保护用户隐私安全。

2. 提升搜索排名

采取 HTTPS 可以帮忙搜索排名的提升,提高站点的可信度和品牌形象。

3. 杜绝钓鱼网站

HTTPS 地址栏绿色图标可以帮助用户识别出钓鱼网站,保障用户和企业的利益不受危害,增强用户信赖。

二、一个大略的http做事

下面会用golang实现一个大略web做事,它会返回get要求参数中name的参数,并返回当前做事器的韶光。
web做事走http,作为例子方便后面的演示。

2.1 腾讯云做事器go环境支配

买了个最低配的腾讯云做事器,操作系统是:Ubuntu Server 16.04.1 LTS 64位。

登录做事器,然后go该当是没有安装的。
先下载当前最新的go安装包:

ubuntu@VM-45-13-ubuntu:~$ wget https://dl.google.com/go/go1.11.linux-amd64.tar.gz

解压缩:

ubuntu@VM-45-13-ubuntu:~$ sudo tar -C /usr/local -xzf go1.11.linux-amd64.tar.gz

设置环境变量,文件~/.profile中增加一行:

export PATH=$PATH:/usr/local/go/bin

生效:

source ~/.profile

测试下,查看当前go版本:

ubuntu@VM-45-13-ubuntu:~$ go versiongo version go1.11 linux/amd64

2.1.2 运行web做事

设置go的workplace的路径为$HOME/go,在文件~/.profile中增加一行:

export GOPATH=$HOME/go

然后source下:

source ~/.profile

创建文件夹:

mkdir -p ./go/src/testhttps/

2.2 本地支配大略的web做事

我写了个大略的web做事,创建文件main.go:

vi ~/go/src/testhttps/main.go

将下面代码复制进去:

package mainimport (\"大众fmt\公众\公众log\"大众\"大众net/http\"大众\"大众time\"大众)func sayHelloTime(w http.ResponseWriter, r http.Request) {r.ParseForm() //parse requestlog.Print(r.Form)name := r.Form.Get(\公众name\"大众) // get argumentresult := fmt.Sprintf(\公众Hello, %s! Current time : %s\n\"大众, name, time.Now()) // send data to clientfmt.Fprintf(w, result)}func main() {http.HandleFunc(\"大众/\"大众, sayHelloTime)err := http.ListenAndServe(\"大众127.0.0.1:8765\公众, nil) // run on 127.0.0.1:8765if err != nil {log.Fatal(\"大众error:\公众, err)}}

然后就可以运行啦,go build会天生一个可实行文件testhttps:

cd ~/go/src/testhttpsgo build./testhttps

另开个ssh,我们发送get要求,地址http://127.0.0.1:8765/?name=jj。
返复书息如下:

ubuntu@VM-45-13-ubuntu:~$ curl http://127.0.0.1:8765/?name=jjHello, jj! Current time : 2018-10-03 01:09:45.860019907 +0800 CST m=+23.075722862

这时候web做事是跑在本地端口,外部网络是访问不到了。
接下来要设置反向代理,让外部访问到。

2.3 设置nginx反向代理

安装nginx:

sudo apt-get install nginx

设置反向代理,文件/etc/nginx/sites-available/default中添加如下:

server { listen 8766; server_name .test.cn;#这里乱弄得,后面有用 location / { proxy_pass http://localhost:8765; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_redirect off; }}

上面的意思是,nginx监听外部8766端口,将要求转发给localhost:8765。

打开浏览器访问网址,http://你的腾讯云公网ip:8766/。
可以看到,我们在外网访问到了该做事。

8766转发可以访问到

8765端口外部访问不到

三、切换https

接下来,我们将上面利用http协议的web做事切换到https。

3.1 申请证书

对付https协议,我们可以大略理解为:通过非对称加密技能建立起一个加密通道,然后http的明文走加密信道,担保安全。
这里的根本是非对称加密,以是哀求有公钥和私钥。
而常日说的https证书,它里面包含了公钥等信息。
我们向可信的证书颁发机构申请证书,浏览器收到做事器发来的证书会去机构进行署名验证,确认无误后就可以进行开始建立安全的加密通信了。

企业型证书购买用度

写到这里就会想到很多事情:

由于国外技能的先入和垄断,这些颁发证书的机构一样平常都是国外巨子,我们申请证书虽然有免费的,但是企业型证书须要交一笔不菲的用度。
这些证书颁发机构拥有你的私钥和公钥,以是说如果他们想要做恶或者透露了,你的加密就没有任何意义了。
不知道大家是否有留神,之前用web登录12306购票网站,会弹出证书不屈安,由于他们是用的自己颁发的证书,而不是去机构申请,可能便是考虑到这点。
但我刚登录了12306,创造现在已经切换为美国DigiCert机构颁发的证书。
不仅https证书,还有申请域名、解析等等都要费钱,凭什么这些中介机构就能躺着赢利呢?现在区块链技能的涌现,给用技能冲破不信赖,颠覆这些中介构造带来了曙光!
我还是很看好的!

12306的证书

言归正传,我用腾讯云里购买的域名作为例子:

3.1.1 腾讯云购买域名

这里不进行详细描述了,直接买了交钱就行。

3.1.2 申请免费证书

腾讯云SSL证书管理掌握台(https://console.cloud.tencent.com/ssl)

进入可以申请亚洲诚信颁发的免费1年的域名型证书,按照提示申请即可,通过审核后可以下载证书。

进入可以申请亚洲诚信颁发的免费1年的域名型证书,按照提示申请即可,通过审核后可以下载证书。

3.2 两种方案

3.2.1 nginx

利用web做事器来做,这里以nginx为例子。

文件/etc/nginx/sites-available/default中添加如下,www.example.com更换为自己的域名。

server { listen 443 ssl; server_name www.example.com; ssl_certificate /etc/nginx/www.example.com.crt;# crt的位置 ssl_certificate_key /etc/nginx/www.example.com.key;# key的位置 proxy_ssl_protocols TLSv1 TLSv1.1 TLSv1.2; location / { proxy_pass http://localhost:8765; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_redirect off; }

443端口默认是https利用,然后我们将要求转发给http://localhost:8765。
这里还有一步便是须要设置域名解析到此云做事器ip。
可以看到,https正常访问,返回结果正常,我们的域名前有把锁啦!

https设置成功

3.2.2 腾讯云负载均衡

证书支配到负载均衡

利用腾讯云的负载均衡来实现https是更推举的,2个缘故原由:

https是有一定的性能影响的。
由于涉及到加解密,对付相应和做事器性能都有一定的影响,这也便是为什么https已涌现多年没有全面遍及的一个缘故原由。
那么现在客户端到负载均衡间是https连接,性能问题由负载均衡搞定,由腾讯进行硬件级的优化等;负载均衡再将要求用http转发给我们后台的做事器,之前的代码也不须要做变动。
当流量过大时,可以方便地进行横向扩展。
负载均衡可以设置按权重、iphash等办法分发流量给后台。

有唯一一个弊端便是,目前公网负载均衡是收费的,0.02元每小时,折算每个月才15块钱。
以是大家可以根据自己的情形来做选择,我因此为这点钱无所谓额。

基本流程:负载均衡CLB便是一台做事器,给我们转发用。
以是我们对域名设置解析,A类型记录,ip填入负载均衡CLB的vip。
访问域名就会直接找到负载均衡CLB,然后CLB再把要求分发给我们绑定的云做事器。

ps:这里我们针对第二部分的http后台做事改造,端口8766。

A.购买负载均衡

先购买一个运用型负载均衡实例:

B.证书支配到负载均衡

然后将https证书支配至该负载均衡上,证书列表:https://console.cloud.tencent.com/ssl

C.设置负载均衡

然后就去负载均衡里面配置,这里的观点实在文档描述的并不足清晰,我捋一下:

首先,创建HTTP/HTTPS监听器。
由于我们走的是默认443端口,如下图填入。
这是客户端连接负载均衡的时候要访问的那个端口。

然后,连续点+,创建HTTP/HTTPS转发规则。
这里的意思可以根据域名后面的url路径来分发流量,我们设置为/。
例如这里可以设置/image转发给某台机器,/text转发给某台机器。
均衡办法便是设置用什么方法来分发流量。
后面连续下一步填康健检讨和会话保持。

末了,绑定云做事器CVM和端口。
这里的意思,命中了转发规则后,分发给哪些云做事器、以及端口啊?由于我们的http后台做事在云做事器的8766端口,填入即可。

我们测试下https,可以看到证书和返回结果都正常,成功。

四、总结

这里只是大略举例,个中还涉及到很多东西没有席卷进来。
例如依赖负载均衡来实现https,如何进行自动伸缩?云做事器如何设置安全组?等等,后面会连续写文章。

文中一些内容和示例还略简陋,抛砖引玉,共同互换~

标签:

相关文章

易语言扫描码,介绍电脑操作新境界

随着科技的不断发展,计算机技术已经渗透到我们生活的方方面面。在电脑操作中,易语言扫描码作为一种独特的操作方式,近年来备受关注。本文...

网站建设 2024-12-28 阅读0 评论0

易语言在端口读写应用中的魅力与优势

随着计算机技术的飞速发展,编程语言在各个领域的应用日益广泛。在众多编程语言中,易语言以其简单易学、应用广泛的特点,受到了广大编程爱...

网站建设 2024-12-28 阅读0 评论0

巴黎世家IT,时尚界的创新先锋

在时尚界,巴黎世家(Balenciaga)始终以其独特的风格和前卫的设计理念引领着潮流。近年来,随着科技的发展,巴黎世家将目光投向...

网站建设 2024-12-28 阅读0 评论0

易语言在头像提取技术中的应用与前景展望

随着互联网的快速发展,个人头像已成为网络社交、电子商务等领域的重要元素。如何高效、准确地提取头像,成为了一个亟待解决的问题。易语言...

网站建设 2024-12-28 阅读0 评论0

易语言在供应链管理中的应用与方法

随着经济全球化的不断发展,供应链管理在企业管理中的重要性日益凸显。如何提高供应链的效率和效益,成为众多企业关注的焦点。近年来,易语...

网站建设 2024-12-28 阅读0 评论0