1. 云栖社区>
  2. PHP教程>
  3. 正文

阿里云虚机配置https访问[全程详细讲解]

作者:用户 来源:互联网 时间:2017-12-01 11:28:22

阿里https配置虚机访问讲解详细

阿里云虚机配置https访问[全程详细讲解] - 摘要: 本文讲的是阿里云虚机配置https访问[全程详细讲解], 本文通过OscPress同步至oschina,最新版本请查看原文: https://www.cellmean.com/?p=1065 这两天捣鼓了一个网站,暂时托管在阿里云虚机,最低配置的那种,其实是空间免费两年,加上100G的CDN流

阿里云虚机配置https访问[全程详细讲解]
本文通过OscPress同步至oschina,最新版本请查看原文: https://www.cellmean.com/?p=1065

这两天捣鼓了一个网站,暂时托管在阿里云虚机,最低配置的那种,其实是空间免费两年,加上100G的CDN流量。访问速度还不错,练手可以,做实际的项目不推荐了。用FTP传个150k的文件传了三次都失败,只能压缩了再传上去解压,也是醉了。


折腾一番之后,网站的数据和文件总算被搬上去了,http://lilian.cellmean.com


然后发现一个问题,浏览器访问网站会被加入一段广告弹窗。


阿里云虚机配置https访问[全程详细讲解]


试过改DNS,没用, 是运营商的线路劫持。它们在http响应的body直接插了这么一段。


阿里云虚机配置https访问[全程详细讲解]


非常恶劣,PC访问很容易通过改hosts表或者浏览器去广告扩展修改,用手机访问,尤其使用后台编辑时,简直不能忍。

只好使用ssl加密了,之前也在startssl做过主域名的ssl证书,感觉还可以,免费证书可以使用一年。现在有了更多的选择,比如LetsEncrypt或者国内一些厂商也提供了免费的ssl证书服务,操作也日趋简单化了。


还是以startssl为例。

打开主页,选择证书验证(这点可能很奇怪,他不是用用户名和密码验证的),如果没注册先注册一个用户。后面会给你一个证书,这个是专门用来登录网站的。

阿里云虚机配置https访问[全程详细讲解]


验证成功后就进入控制面板,选择 “Certificate Wizard”面板,如果没有验证过域名的所有权,请选择Validations Wizard,不过你需要首先准备一个以这个域名为后缀,特定用户名的邮箱,比如[email protected]你的域名,[email protected]你的域名之类的都可以,这个也简单,国内可以申请一个阿里云或腾讯的企业邮箱即可。 我们的证书用于web服务器,在Certificate Wizard下选择Web Server SSL/TLS Certificate。点击continue.

阿里云虚机配置https访问[全程详细讲解]


在跳转后的页面输入你的域名。在“Please submit your Certificate Signing Request (CSR):”选择 “Generated by Myself(.cer PEM format certificate)” ,这个供使用Linux或者 OSX 用户使用。我们来生成一个CSR,打开终端,输入以下命令: openssl genrsa -out lilian.cellmean.com-privkey.pem 2048
openssl req -new -key lilian.cellmean.com-privkey.pem -out lilian.cellmean.com.csr

输入第二条命令之后会出现一系列的问题, 可以随便填或者直接回车。然后就生成了一个.cer的文件,拷贝内容扔到输入框, submit。 阿里云虚机配置https访问[全程详细讲解] 这样证书就生成好了,你可以选择现在下载,或者随时到Toolbox下载.

阿里云虚机配置https访问[全程详细讲解]

证书做好了之后,我们把它配置到阿里云虚机,但必须说一个很杯具的事情,就是这个云虚机其实是不支持https的。但是强制购买的CDN(虽然只有100G流量)是支持的。不过,配置上还有点特别:

访问阿里云的管理后台,进入CDN管理控制台, 域名列表->添加新域名, 源站域名选择IP, 这个IP可以在云虚机的控制台主机信息里找到。 这也是使用CDN的好处之一,可以隐藏源站IP,一定程度减少了被DDos的可能性,其他信息类似如下填写,注意这里的端口一定要使用80。因为云虚机的443端口(https默认端口)不开放,我们只能访问CDN服务器的443端口,然后由CDN服务器回源到云虚机的80端口,这样就实现https的访问,从本质上来说CDN网络节点就是一连串的反向代理服务器。 阿里云虚机配置https访问[全程详细讲解]
云虚机是阿里云旗下的(收购的万网业务),很快就通过审核,或者说不用审核,毕竟自家的,如果你使用别家的服务器可能需要一段时间审核。

阿里云虚机配置https访问[全程详细讲解]


点击立即配置,把https安全加速打开,打开证书配置。回到startssl的控制面板,在Tool Box下点击Certificate List,找到刚才的域名,选择右边下拉列表的”Retrieve(pem)” 下载回本地。打开并复制其内容到阿里云CDN的“证书管理”,里“证书内容”输入框。再找到刚才我们生成csr证书之前生成 lilian.cellmean.com-privkey.pem ,把它的内容也复制出来,放到“私钥”的输入框。跳转类型选择http->https,这样更利于SEO, 因为这样可以把相似或相同的内容集中到同一个url,避免了权重分散。 阿里云虚机配置https访问[全程详细讲解]

接下来我们配置CNAME绑定,阿里云会分配CDN的域名给你,比如像我的这样,你要在DNS里更改域名的映射


阿里云虚机配置https访问[全程详细讲解]


我的域名使用DNSPod的服务,更改如下:


阿里云虚机配置https访问[全程详细讲解]


最后一步是修改站点的代码,前面说过,虽然用户通过https访问CDN服务器,但CDN服务器到源站是通过http访问的,(以WordPress为例)这样的话,呈现在最终用户的页面中里,链接的地址还是显示http开头的,比如:http://lilian.cellmean.com/about我们需要呈现给用户的是https://lilian.cellmean.com/about 这种的url, 在WordPress也很简单,它是有一套专门的url函数,可以做一些url控制,比如rewrite等,这也是不要去硬编码url的原因, 跟踪代码可以发现,它是通过 $_SERVER[‘HTTPS’] 服务器变量判断当前环境是否为https访问,我们可以这样骗过它,在wp-config.php文件开头写入以下内容:



define(‘WP_HOME’, ‘https://’.$_SERVER[‘HTTP_HOST’]); define(‘WP_SITEURL’, ‘https://’.$_SERVER[‘HTTP_HOST’]); $_SERVER[‘HTTPS’] = ‘ON’;


这样就大功告成了,有图有真相。


阿里云虚机配置https访问[全程详细讲解]

感谢阅读本文,欢迎访问 微言 获取更多内容或查看原文


以上是云栖社区小编为您精心准备的的内容,在云栖社区的博客、问答、公众号、人物、课程等栏目也有的相关内容,欢迎继续使用右上角搜索按钮进行搜索阿里 , https , 配置 , 虚机 , 访问 , 讲解 , 详细 ,以便于您获取更多的相关知识。