在Linux中实现https访问站点的配置

2017-08-04  本文已影响0人  芷_念

简介HTTPS

HTTPS(全称:Hypertext Transfer Protocol over Secure Socket Layer),时以安全为主要目标的HTTP通道,简单讲是HTTP的安全版。它的主要作用可以分为两种:一种是建立一个信息安全通道,来保证数据传输的安全;另一种就是确认网站的真实性。即HTTP下加入SSL层,HTTPS的安全基础是SSL,因此加密的详细内容就需要SSL。

HTTPS解决的问题:

一、解决了信任主机的问题:采用https的服务器必须从CA (Certificate Authority)
申请一个用于证明服务器用途类型的证书。该证书只有用于对应的服务器的时候,客户端才信任此主机。客户通过信任该证书,从而信任了该主机。

二、解决了通讯过程中的数据的泄密和被篡改的问题:服务器和客户端之间的所有通讯,都是加密的,加密的详细内容就需要SSL

客户端通过https方式访问服务器的过程:

1.客户机通过https访问web服务器,web服务器向客户机出示自己的证书

  1. 客户机验证证书的有效性,包括发证时间,发证机关,执行者标识。

3.如果客户机验证证书通过,客户机随机产生128位的key,再利用证书文件传递的public key对该随即key机进行加密。

4.加密后传送至服务器端,服务器再利用自己的public key对加密的key进行解密,得到客户机的随机key值。

5.这时两端的key值相同,利用该key进行加密通讯。

实现Https的详细步骤

开启一台linux机器作为web服务器,例如centos6.9,地址为172.16.253.88,先在web服务器上准备好光盘和yum源,并安装好httpd

安装httpd软件包,建立www服务器:

[root@centos6 ~]#yum install httpd

在这个www服务器的机器上做个小的页面,里面内容就是“hello internet”:

编辑httpd的主配置文档:

[root@centos6 html]#vim /etc/httpd/conf/httpd.conf 

改变此行,开启身份验证:

然后编辑.htaccess文件(这是个隐藏文件),用来创建身份验证的一个文件:

[root@centos6 html]#vim .htaccess

添加几行命令:
验证用户文件的位置;验证的基本方式;提示语;设置中有有效账户才能访问


编辑好之后保存退出;

添加登陆web的用户:

用户user1添加完成; 当再次增加一个用户时,不要再加参数 -c 了; 如果加上 -c 时,user1就会被挤掉,所以只是第一次增加用户时才加上参数 -c ;


查看信息:

启动 httpd 服务:

[root@centos6 www]#service httpd start

完成了httpd的一系列操作,已经可以用http服务web站点了,但是不安全,我们要用https安全访问web站点,这样我们要做CA服务器 创建证书CA服务器:

进入pki目录,编辑CA的配置文件:


把原来的参数改为optional,这样外来站点可以访问CA:

更改默认值,当向CA提出申请的时候,可以简单明了:

创建上面文件中提到的目录和文件:

创建序列号,并追加到serial中:

[root@centos6 CA]#echo "01" >serial

先产生CA服务器自己的私钥; 添加1024位的非对称钥匙:

把产生的私钥放在private/cakey.pem文件中:

为安全起见去掉里面的权限:

有了钥匙,再来产生CA服务器自己的证书:

根据自己的情况填写里面的内容:

然后做WEB服务器的证书和私钥:

新建一个文件,来存放私钥和证书:

创建Web服务器的私钥:

Web服务器通过自己的私钥创建一个证书请求:

CA服务器根据请求给web服务器一个证书:

为了证书的安全性,修改证书文件的权限:

Alt text

Web服务器有了证书和私钥,必须向客户端显示自己的证书,需要安装ssl模块:

现在可以看到mod-ssl的包:

用yum安装mod-ssl软件包即可:

 [root@centos6 cd]#yum install mod_ssl

回到httpd目录下,可以看到一个新产生的文件

编辑这个文件:

[root@centos6 conf.d]#vim ssl.conf 

检查编辑的是否有语法错误:

[root@centos6 conf.d]#service httpd configtest
Syntax OK

重启httpd服务:

Alt text
完成后就可以安全的访问了:
 
测试结果:
 在你机器的windows上找到 C:\windows\System32\drivers\etc
 在hosts文件中加上一条信息

我的浏览器可能有点问题无法访问,所以我在centos7机上安装了links; 然后直接用links www.zzdx.com连接了,输入用户名(user1或者时user2)和密码。

可以看到我们在web服务器上做的网页内容:

或者也可以在浏览器上访问 https://www.zzdx.com

到此我们就完成了https访问web站点的操作。

上一篇下一篇

猜你喜欢

热点阅读