美文网首页
你的网站还在使用不安全的HTTP协议吗

你的网站还在使用不安全的HTTP协议吗

作者: 蚁景科技 | 来源:发表于2018-06-05 09:52 被阅读28次

    前几天看见群里有同学说安装了ssl证书了后,网站直接403了,也就是资源请求错误。我判断可能原因就是url跳转的规则估计有问题,因为第一次我也踩过这个坑,然后我在自己的Ubuntu云服务器里面搭建测试一样。

    那么网站为什么要使用ssl?

    目前绝大多数网站都还使用的是HTTP协议。而HTTP 协议无法加密数据,极有可能会被不法分子利用。存在导致数据泄露、数据篡改、流量劫持、钓鱼攻击等安全问题隐患。如果网站使用 HTTPS协议的话,可以在 HTTP 的基础上加入 SSL/TLS 协议,依靠 SSL 证书来验证服务器的身份,为客户端和服务器端之间建立“SSL”通道,确保数据运输安全。更多详细的资料可以自行百度。

    ssl的简单介绍

    SSL(Secure Sockets Layer 安全套接层),及其继任者传输层安全(Transport Layer Security,TLS)是为网络通信提供安全及数据完整性的一种安全协议。TLS与SSL在传输层对网络连接进行加密。

    SSL是网站安全重要的防护。目前,SSL证书的使用范围遍及世界各地网络。SSL对于网站来说是十分重要的安全协议,因为它能保护网站以及用户的个人隐私信息,以及数据的安全性和完整性。详细介绍关于ssl。

    网站使用ssl必将是一个趋势。

    据外媒报道,自2018年5月1日起,如果Https网站所使用的SSL凭证未出现在公共证书透明度(Certificate Transparency,以下简称CT)日志中,谷歌Chrome浏览器就会出现全屏警告画面。

    我安装ssl证书中的具体主要操作步骤

    1.安装web服务器apache

    2.安装开源的openssl

    3.申请域名证书上传到服务器中

    4.配置openssl加载证书文件

    5.设置HTTP跳转HTTPS

    01安装apache2

    本次实验使用腾讯云的服务器Ubuntu16.04(属于Debian以下方法都可以实现)

    使用ip:111.230.107.42

    使用的域名:xsscss.cn (提到此域名,我就得说一下我一直付费到2024年啦,都是money啊23333)

    使用的证书:由腾讯云提供的免费证书(怎么申请自行百度)

    1.1安装apache

    为了方便 我直接使用root权限操作一切(ubuntu 一般使用使用执行命令需要sudo)

    1# sudo su

    1# apt install apache2 -y

    1.2浏览器访问测试

    至此安装apache2完成,简单介绍一下apache的目录

    安装好了Apache2会自动启动,但是自动启动的不包含https仅仅是http默认的配置路径

    Apache配置文件路径: cd /etc/apache2/

    Apache默认日志路径: cd /var/log/apache2

    进入Apache的配置文件目录

    cd /etc/apache2/

    查看目录结构

    tree

    具体的目录结构如下

    apache2.conf

    conf-available

    conf-enabled

    envvars

    magic

    mods-available

    ports.conf

    sites-available

    sites-enabled

    其中 apache2.conf 是整个Apache的主配置文件

    02 安装openssl

    其实一般最新的服务器都会默认自带openssl的,本次实验我们覆盖安装最新的,是没有影响的,如果非要卸载再安装的给你一行代码自己实现

    1# apt remove openssl

    2.1安装openssl以及所需要的依赖包

    1# apt install openssl -y

    2# apt install libssl-dev -y

    2.2加载ssl模块

    1# a2enmod ssl

    2.3根据提示重启apache服务

    1# service apache2 restart

    2.4加载成功后可到配置文件查看是否加载成功

    1# cd /etc/apache2/mods-enabled

    有以上图中标记的两个文件夹则加载成功

    03 上传证书到云服务器

    我已将在腾讯云申请的免费的ssl证书下载到本地,当然通过openssl可以自己生成一个,但是有没有颁发授权,会有提示网站证书不安全,如果是自己的设备安装的话这个开源免费openssl的值得一搞。之前曾装过深信服的桌面云服务器里面管理页面系统都是ssl加密但是也都是证书不安全,但也没什么不好。毕竟本地使用。但是自己网站的话每次都出现此网站证书不安全,给浏览你网站的朋友带来一种不安全的印象。所以我们必须使用颁发的证书,可以买,很贵的,还好国内阿里云和腾讯云都有免费的。自己要有域名的话就去免费申请一个,跟着我给网站安装一个ssl。

    证书就是这样

    这次使用apache的

    上传上去

    方法很多 什么搭建ftp什么的 或者存到自己一个网站的目录下 wget一下啊

    这次我使用xshell里面的一个工具 既可以下载又可以上传 so easy!

    安装lrzsz工具上传证书

    1# apt install lrzsz

    使用rz上传sz下载

    一般上传或者wget的目录都在家目录,不懂Linux可以看看我之前的linux学习的文章

    1# cd /home/ubuntu

    2# rz

    3# ls

    将证书文件移动配置文件中去自己新建一个文件夹放证书就行(这样做的意义就是趴在放在一般目录被删掉,而etc配置文件我么一般不会删,除非卸载一些东西才会那样干)

    查看并及解压

    1# mkdir /etc/apache/ssl

    2# mv /Apache.zip /etc/apache/ssl

    3# unzip Apache.zip

    看看证书里的文件是什么啊

    1_root_bundle.crt是根证书链(公钥)

    2_xsscss.cn.crt证书公钥(一般以域名命名)

    3_xsscss.cn.key私钥文件(一般以域名命名)

    接下里我们要做的就是让ssl模块加载这三个文件

    04 配置openssl

    Apache加载SSL模块后,会在/etc/apache2/sites-available下生成default-ssl.conf文件

    需要配置三个地方

    4.1进入配置

    1# cd /etc/apache2/sites-available/

    2# ls

    3# vi default-ssl.conf

    添加一行

    ServerName www.xsscss.cn

    添加(修改)链接到三个证书文件,注意自己ssl证书所在的路径

    1SSLCertificateFile      /etc/apache2/ssl/2_xsscss.cn.crt

    2SSLCertificateKeyFile  /etc/apache2/ssl/3_xsscss.cn.key

    3SSLCertificateChainFile /etc/apache2/ssl/1_root_bundle.crt

    4.2设置一个软链接使其apache加载ssl配置文件

    进入到site-enabled文夹中查看当期只有一个000-default.conf文件

    通过一些命令做一个映射使其apache加载ssl配置文件

    1#cd /etc/apache2/sites-enabled/

    2#ls 

    3#ln -s /etc/apache2/sites-available/default-ssl.conf ./

    映射(创建软链接)成功后会发现在/etc/apache2/sites-enabled/ 下增加了default-ssl.conf文件,实际是一个软链接

    4.3加载apache的rewrite模块,并重启apache2服务器

    1# a2enmod rewrite

    05 设置http跳转https

    终于快完了,累死我了,为了写这篇文章,我重装了服务器,做第二次实验了。其实md语法也不难,就是很烦,不知每个地方用啥好,很纠结。

    之前在IIS服务器弄个URL映射,很麻烦,下载东西什么的,烦的一匹,对于Linux,我们都知道所有都是修改文件添加几行代码,直接777就是干。233333

    进入正题:

    —修改两个地方或者一个我这使用两个地方:

    url重定向嘛,就是访问”http://xsscss.cn“ 自动跳转到 “https://xsscss.cn"上去了

    首先:配置我们最初说的apache.conf核心文件

    修改 AllowOverride 参数None 为All 根据字面意思我们就知道了 允许覆盖为all

    修改前

    修改后

    · 然后:在网站根目录下 /var/www使用 touch .htaccess创建.htaccess文件

    1# cd /var/www/

    2# touch .htaccess

    先百描述一波.htaccess文件(或者”分布式配置文件”),全称是Hypertext Access(超文本入口)。提供了针对目录改变配置的方法, 即,在一个特定的文档目录中放置一个包含一个或多个指令的文件, 以作用于此目录及其所有子目录。作为用户,所能使用的命令受到限制。管理员可以通过Apache的AllowOverride指令来设置。

    这个文件要是有php环境等其他动态网站的话 我们需要自己新建一个把我们需要的URL跳转规则放进去

    这个的话有好几种实现方法

    1.全服务器网站跳转

    2.一个网站跳转

    3.某些页面(目录跳转)

    这里主要讲下全服务器网站和单个网站跳转

    1# vi .htaceess

    全服务器跳转:

    添加以下代码(使用正则表达式过滤的,在Java和python爬虫中用过,还有js验证过滤用的也多)

    1RewriteEngine on

    2 RewriteCond %{SERVER_PORT} !^443$

    3 RewriteRule ^(.*)?$ https://%{SERVER_NAME}/$1 [L,R]

    如果对某个目录做强制跳转,则使用以下代码:

    1RewriteEngine on

    2 #RewriteBase /website

    3 RewriteCond %{SERVER_PORT} !^443$

    4 RewriteRule ^.*$ https://%{SERVER_NAME}%{REQUEST_URI} [L,R]

    最后重启服务

    1# service apache2 restart

    06 测试访问

    至此 Apache http访问转到https 配置结束

    大功告成

    参考以上方法也可以直接在别的环境下安装ssl,大致就是安装开源的open-ssl,,使用自己制作的证书或者使用第三方的证书。

    需注意到地方:

    前提是你的域名要解析到本ip,我这里已经解析过了

    除此之外云服务器可能有安全规则防火全会关闭443端口,尤其阿里云,第一次给IIS aparke.cn配置的时候就入坑了 后来还是人工提交订单帮我找到问题所在

    注:本文为合天智汇原创,未经允许,严禁转载!

    相关文章

      网友评论

          本文标题:你的网站还在使用不安全的HTTP协议吗

          本文链接:https://www.haomeiwen.com/subject/iefpsftx.html