[关闭]
@PatrickCtyyx 2016-12-26T16:32:05.000000Z 字数 2085 阅读 471

https,想要使用你没那么容易


title: https,想要使用你没那么容易

categories: 其他

背景

今天在搞博客的时候突然想给域名加上https,正好瞟到腾讯云里面又免费的SSL证书可以申请,于是抱着试一试的心态点了进去。没想到耗费了大半个下午。

得到SSL证书

其实获得SSL证书并不难,由于域名还有服务器都在腾讯云上,所以在腾讯云上申请一个证书就比较容易了。

刚开始的时候我还以为http变成https非常困难,后来知道只用申请一个SSL证书就可以https加持了,然而事情就是这么简单么?

一开始我只想给我的个人博客加上https,结果在申请SSL证书的时候卡住了,倒是jnugeek.cn很快就申请通过了,于是决定先给jnugeek.cn加上https。

显示https没那么容易

根据腾讯云的文档,在nginx上使用https只用下载证书然后把证书安装在相应的地方并修改nginx的配置文件就可以了,在改的时候我也遇到了很多的坑,不过也这也加深了我对nginx的理解。下面附上nginx的相关配置:

server {
    listen 443;  # https监听443端口
    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;
    }
}

server {
    listen 80;  # http监听80端口
    server_name www.domain.com;
    rewrite ^(.*) https://$host$1 permanent;  # 把80进来的请求重定向到https
}

其中每个server都是独立的虚拟机,因为http和https本身就是不相互兼容的,所以这里指定两个也不奇怪了。

关于nginx的配置这个说的很清楚了。

刚开始我就在server的配置吃了一点小亏,我只是机械的把ssl的部分加上去了,结果果然是没什么卵用,直到改成上面这种样式才终于可以了!

于是乎在浏览器就惊喜的看到了https~而且即使输入的是http也会自动定向到https~到这里的时候我真的超级开心!然而我还是高兴地太早了,https的那把绿色的小锁并没有显示出来...

网站中含有不安全的内容

使用上了https后并没有想象中的那么棒,相反很多问题出现了。

当我用Ubuntu自带的浏览器打开时我发现它提示网站中含有不安全的内容,Google之后发现是因为https和http混合使用。网站上那些放在七牛云上的静态文件现在反而让网站成为了不安全网站,而且后来我在Chrome上看的时候发现js都被屏蔽了,图片也是显示黄色三角警告。

后来我看到,黑客可能通过http对js文件进行篡改,而js代码又是可执行的,于是可以造成很严重的后果,这样看来js被屏蔽也是可以理解的。

为了解决这个问题,我打算把静态文件转系到一个https的服务器上,然而试了腾讯云的对象储存服务,以及七牛云的相关服务后发现依然是http。

很多大公司他们的静态文件都是放在自己专门的服务器上的,这样的话就不用依靠第三方的了,这对于我们这种学生党,个人开发者就不是很好了...不过其实七牛云上面好像有相应的https服务,这是然而当时因为另外的问题决定暂时放弃https了。

在折腾对象储存服务,还接触到了CDN,CDN是把各个不同的请求,根据地域等从不同的服务器分发,这样就能加快加载速度了。

之后我还发现了https问题并不只在静态文件上,ajax也不能用了(不知道是不是),当我提交表单的时候并没有跳转回相应的界面,而是最简陋的白色背景界面...这时候我才意识到这样贸然上https确实不太明智,于是决定先回到http了。

但是当我在服务器中改变了相应的文件之后,发现依旧是https,然而刷新的时候会报错,后来我看到一旦浏览器使用https建立了安全连接之后就不会再用http访问了...即使我改过来了依旧不行...不过好在应该只有我受影响了...

https果然不是那么容易就能搞定的啊。(说不定只是我太菜了而已...

关于https

https比起http要安全的原因就是https在浏览器和应用中另外还加了一层,在这一层中他对明文传输的TCP/UDP进行了加密,这样就保证了相应的安全。

还有就是网站加入了SSL证书,这个证书很难被伪造不被发现,也就是说长得很像钓鱼链接就更容易被识别啦。

也学了好多域名的知识呢

CNAME
解析
一级二级域名...

添加新批注
在作者公开此批注前,只有你和作者可见。
回复批注