https加密访问web站点的实现
2012-08-22 18:32
357 查看
什么是WEB服务器
Web服务器是指驻留于因特网上某种类型计算机的程序。当Web浏览器(客户端)连到服务器上并请求文件时,服务器将处理该请求并将文件发送到该浏览器上,附带的信息会告诉浏览器如何查看该文件(即文件类型)。服务器使用HTTP(超文本传输协议)进行信息交流,这就是人们常把它们称为HTTPD服务器的原因。 Web服务器不仅能够存储信息,还能在用户通过Web浏览器提供的信息的基础上运行脚本和程序。Web服务器是支持http,ftp gopher等协议的统称为web服务器 ,狭隘的可以理解为支持http协议的为web服务器
http版本:
http有两个版本 1.0和1.1
版本1.1比1.0多了持久连接(keepalive)功能 版本1.1可以让你一次访问 但是可以得到n多对象 不需要没请求一次对象就去请求对象
http与https :
http不安全,利用的是明文显示
https安全利用的密文加密传输 主要是https在应用层与传输层之间加了一个ssl安全套接层,当客户机访问web服务器是,数据包到达传输层之前,先交给ssl安全套接层进行加密,然后再交给传输层传输,到达服务器后 先将数据包交给ssl安全套接层解密然后传输给应用层。所以数据包在传输的过程中都处于加密状态
web服务器的实现
主要是
1 apache
2 nginx
3 lighttpd
https 实现加密的过程
1 客户机访问web服务器
2 web服务器出示自己的证书,证书包括web服务器的公钥,标识以及签名机关和签名
3 客户机利用证书上的公钥加密随即产生的k值
4 传到服务器后,服务器利用自己的私钥打开取出k值
5 利用k值解开数据包
Linux平台的web服务器可以做到三种安全控制
1 身份验证
2 来源控制
3 https加密访问
案例:
我们利用linux +apache 实现https加密访问
需求:
实现https需要ca 、web服务器以及web客户端 Ca是证书颁发机构 Linux有openca 开源的ca(开源的证书颁发机构)
实现过程
web服务器向ca请求颁发证书,若ca给予其颁发,则ca与服务器绑定。当web客户机访问web服务器时,web服务器出示证书
步骤
1 建立一个ca
2 web服务器向ca请求证书
3 http与ssl通过模块mod_ssl绑定结合
4客户机访问web服务器
一 建立一个ca(证书颁发机构)
安装httpd服务
.jpg]
启动httpd
[root@localhost Server]# service httpd start
[root@localhost Server]# cd /etc/pki
.jpg]
编辑文件[root@localhost pki]# vim tls/openssl.cnf
.jpg]
.jpg]
将match改为optional::
:88,90 s/match/optional
目的是为不同地区的人发证书
.jpg]
避免自己在安装证书时填写自己的国家地区 所以将改为默认值
.jpg]
必须要有43-57之间的三个目录和两个文件
必须有三个目录以及两个文件
三个目录/certs /crl /newcerts
两个文件 index。Txt serial
1 创建三个目录以及文件
[root@localhost CA]# touch index.txt serial
[root@localhost CA]# mkdir certs crl newcerts
.jpg]
2 [root@localhost CA]# echo "01" >serial 给予serial第一份证书的序号为01
3 产生钥匙[root@localhost CA]# openssl genrsa 1024 >private/cakey.pem
Genssl:gen是产生 rsa是非对称加密算法
1024 是加密的长度
4 改权限 将钥匙文件的权限改我600 [root@localhost CA]# chmod 600 private/*
5 通过钥匙产生证书 [root@localhost CA]# openssl req -new -key private/cakey.pem -x509 -out cacert.pem -days 3650
.jpg]
Ca创建完成
二 下边做自己的web服务器
要求自己是web服务器 1 有自己的私钥 2 利用自己的私钥向ca请求证书 3 申请证书
1做自己的私钥
创建自己的私钥位置文件,表明私钥放在什么位置
[root@localhost ~]# mkdir -pv /etc/httpd/certs
[root@localhost ~]# cd /etc/httpd/certs
[root@localhost certs]# openssl genrsa 1024 >http.key
.jpg]
2 产生自己请求证书的请求文件
[root@localhost certs]# openssl req -new -key http.key -out http.csr
.jpg]
3 利用请求去向ca请求证书
[root@localhost certs]# openssl ca -in http.csr -out http.cert
.jpg]
4 修改目录的权限
[root@localhost certs]# chmod 600 *
.jpg]
Web服务器做成
三 然后让http与ssl结合
两者之间的结合靠模块mod_ssl结合起来
1 查询mod_ssl模块是否安装
[root@localhost Server]# yum install mod_ssl
利用yum保证自己的yum脚本配置正确
2 编辑mod_ssl的配上文件
装过ssl之后 在[root@localhost Server]# cd /etc/httpd/conf.d/会有一个ssl.conf
Conf.d里边装一些httpd额外的功能模块
.jpg]
重新启动httpd
[root@localhost conf.d]# vim ssl.conf
.jpg]
重新启动httpd
四 测试
找一台机器当web客户机
.jpg]
.jpg]
利用加密的https访问
.jpg]
确定后显示证书
.jpg]
解决这两个问题
1 不信任颁发证书的机构
只需安装机构的证书就信任颁发机构(ca)
然后查看证书
.jpg]
将根ca显示出来 形成证书链
[root@localhost conf.d]# vim ssl.conf
.jpg]
然后重新启动
[root@localhost conf.d]# service httpd restart
.jpg]
d
点击查看并安装证书
.jpg]
.jpg]
然后重新登陆访问网页
.jpg]
解决2 证书上提供的名字www.langzi.com与访问的192.168.88.128不符
解决方案有两种
1 dns服务器
2 修改本客户机的hosts文件
下边我们只修改本机的hosts文件来完成 dns慢慢与你分享
在我们电脑的
C:\WINDOWS\system32\drivers\etc
.jpg]
以记事本的方式打开并编辑
.jpg]
然后再重新访问web服务器
.jpg]
没有警告
成功解决
最后提示:就是http能访问而https也能访问做不到https的加密策略
这样只需编辑 vim /etc/httpd/conf/httpd.conf
将其中的访问端口80 改为443 这样只有https能够加密访问
Web服务器是指驻留于因特网上某种类型计算机的程序。当Web浏览器(客户端)连到服务器上并请求文件时,服务器将处理该请求并将文件发送到该浏览器上,附带的信息会告诉浏览器如何查看该文件(即文件类型)。服务器使用HTTP(超文本传输协议)进行信息交流,这就是人们常把它们称为HTTPD服务器的原因。 Web服务器不仅能够存储信息,还能在用户通过Web浏览器提供的信息的基础上运行脚本和程序。Web服务器是支持http,ftp gopher等协议的统称为web服务器 ,狭隘的可以理解为支持http协议的为web服务器
http版本:
http有两个版本 1.0和1.1
版本1.1比1.0多了持久连接(keepalive)功能 版本1.1可以让你一次访问 但是可以得到n多对象 不需要没请求一次对象就去请求对象
http与https :
http不安全,利用的是明文显示
https安全利用的密文加密传输 主要是https在应用层与传输层之间加了一个ssl安全套接层,当客户机访问web服务器是,数据包到达传输层之前,先交给ssl安全套接层进行加密,然后再交给传输层传输,到达服务器后 先将数据包交给ssl安全套接层解密然后传输给应用层。所以数据包在传输的过程中都处于加密状态
web服务器的实现
主要是
1 apache
2 nginx
3 lighttpd
https 实现加密的过程
1 客户机访问web服务器
2 web服务器出示自己的证书,证书包括web服务器的公钥,标识以及签名机关和签名
3 客户机利用证书上的公钥加密随即产生的k值
4 传到服务器后,服务器利用自己的私钥打开取出k值
5 利用k值解开数据包
Linux平台的web服务器可以做到三种安全控制
1 身份验证
2 来源控制
3 https加密访问
案例:
我们利用linux +apache 实现https加密访问
需求:
实现https需要ca 、web服务器以及web客户端 Ca是证书颁发机构 Linux有openca 开源的ca(开源的证书颁发机构)
实现过程
web服务器向ca请求颁发证书,若ca给予其颁发,则ca与服务器绑定。当web客户机访问web服务器时,web服务器出示证书
步骤
1 建立一个ca
2 web服务器向ca请求证书
3 http与ssl通过模块mod_ssl绑定结合
4客户机访问web服务器
一 建立一个ca(证书颁发机构)
安装httpd服务
.jpg]
启动httpd
[root@localhost Server]# service httpd start
[root@localhost Server]# cd /etc/pki
.jpg]
编辑文件[root@localhost pki]# vim tls/openssl.cnf
.jpg]
.jpg]
将match改为optional::
:88,90 s/match/optional
目的是为不同地区的人发证书
.jpg]
避免自己在安装证书时填写自己的国家地区 所以将改为默认值
.jpg]
必须要有43-57之间的三个目录和两个文件
必须有三个目录以及两个文件
三个目录/certs /crl /newcerts
两个文件 index。Txt serial
1 创建三个目录以及文件
[root@localhost CA]# touch index.txt serial
[root@localhost CA]# mkdir certs crl newcerts
.jpg]
2 [root@localhost CA]# echo "01" >serial 给予serial第一份证书的序号为01
3 产生钥匙[root@localhost CA]# openssl genrsa 1024 >private/cakey.pem
Genssl:gen是产生 rsa是非对称加密算法
1024 是加密的长度
4 改权限 将钥匙文件的权限改我600 [root@localhost CA]# chmod 600 private/*
5 通过钥匙产生证书 [root@localhost CA]# openssl req -new -key private/cakey.pem -x509 -out cacert.pem -days 3650
.jpg]
Ca创建完成
二 下边做自己的web服务器
要求自己是web服务器 1 有自己的私钥 2 利用自己的私钥向ca请求证书 3 申请证书
1做自己的私钥
创建自己的私钥位置文件,表明私钥放在什么位置
[root@localhost ~]# mkdir -pv /etc/httpd/certs
[root@localhost ~]# cd /etc/httpd/certs
[root@localhost certs]# openssl genrsa 1024 >http.key
.jpg]
2 产生自己请求证书的请求文件
[root@localhost certs]# openssl req -new -key http.key -out http.csr
.jpg]
3 利用请求去向ca请求证书
[root@localhost certs]# openssl ca -in http.csr -out http.cert
.jpg]
4 修改目录的权限
[root@localhost certs]# chmod 600 *
.jpg]
Web服务器做成
三 然后让http与ssl结合
两者之间的结合靠模块mod_ssl结合起来
1 查询mod_ssl模块是否安装
[root@localhost Server]# yum install mod_ssl
利用yum保证自己的yum脚本配置正确
2 编辑mod_ssl的配上文件
装过ssl之后 在[root@localhost Server]# cd /etc/httpd/conf.d/会有一个ssl.conf
Conf.d里边装一些httpd额外的功能模块
.jpg]
重新启动httpd
[root@localhost conf.d]# vim ssl.conf
.jpg]
重新启动httpd
四 测试
找一台机器当web客户机
.jpg]
.jpg]
利用加密的https访问
.jpg]
确定后显示证书
.jpg]
解决这两个问题
1 不信任颁发证书的机构
只需安装机构的证书就信任颁发机构(ca)
然后查看证书
.jpg]
将根ca显示出来 形成证书链
[root@localhost conf.d]# vim ssl.conf
.jpg]
然后重新启动
[root@localhost conf.d]# service httpd restart
.jpg]
d
点击查看并安装证书
.jpg]
.jpg]
然后重新登陆访问网页
.jpg]
解决2 证书上提供的名字www.langzi.com与访问的192.168.88.128不符
解决方案有两种
1 dns服务器
2 修改本客户机的hosts文件
下边我们只修改本机的hosts文件来完成 dns慢慢与你分享
在我们电脑的
C:\WINDOWS\system32\drivers\etc
.jpg]
以记事本的方式打开并编辑
.jpg]
然后再重新访问web服务器
.jpg]
没有警告
成功解决
最后提示:就是http能访问而https也能访问做不到https的加密策略
这样只需编辑 vim /etc/httpd/conf/httpd.conf
将其中的访问端口80 改为443 这样只有https能够加密访问
相关文章推荐
- HTTPS加密访问Web站点的实现和虚拟站点的实现例析(一)
- HTTPS加密访问Web站点的实现和虚拟站点的实现例析(二)
- SSL应用系列之二:为Web站点实现SSL加密访问
- 为Web站点实现SSL加密访问
- SSL应用系列之二:为Web站点实现SSL加密访问
- SSL应用系列之二:为Web站点实现SSL加密访问
- 在Linux中实现https访问web站点
- 在Linux中实现https访问web站点
- 在linux中实现https访问web站点的配置
- 利用https实现站点访问
- web服务之Apache实现的https访问
- SDWebImage访问HTTPS站点获取图片资源失败解决办法
- C#、VB.NET使用HttpWebRequest访问https地址(SSL)的实现方法
- 为什么站点实现了https加密之后还是能看到相关数据
- Linux如何利用https访问web站点
- Web_JavaScript_检测访问设备,以实现移动设备访问时跳转到移动站点;
- java+oracle+web(第七天) tomcat介绍 (四)实现https://www.igo.com 直接访问我的主页
- Web的加密访问(https)
- 构建Postfix+Mysql+Dovecot邮件系统,实现以Web页面访问的功能、添加SASL认证以及TLS加密传输 推荐
- iOS SDWebImage访问https站点的图片