zoukankan      html  css  js  c++  java
  • apache+SSL 搭建https

    简单介绍

    一般情况下,我们打开网站默认的是使用明文传输方式,但在日常生活中,当我们在登录或者支付交易时,网站就会自动跳转至SSL(Secure Sockets Layes)加密传输模式,SSL的功能就是提供加密数据

    网络传输过程中的数据加密则是全部委托给SSL协议来完成,而TLS(Transport Layes Security)是对SSL的扩展与优化,它可以提供数据的安全,同时也保证数据的完整性


    证书(Certificate)是HTTPS的核心,但是其实证书并不是一个单一的东西,而是几种技术的综合

    加密/解密

    • 避免消息明文传输,对消息进行加密,早期一般是用对称加密算法,现在一般都是不对称加密,最常见的算法就是RSA

    消息摘要

    • 这个技术主要是为了避免消息被篡改,消息摘要是把一段信息,通过某种算法,得出一串字符串!这个字符串就是消息的摘要,如果消息被篡改"发生了变化",那么摘要也一定会发生变化"如果2个不同的消息生成的摘要是一样的,那么这就叫发生了碰撞"

    数字签名

    • 数字签名是为了验证双方的身份,避免身份伪造

    单向认证和双向认证

    • 单向认证:如百度、以及淘宝之内的网站
    • 双向认证:如银行对安全要求很高的网站,也会采用双向认证,如U盾、安全控件什么的,其实就是固化的客户端证书

    Apache Http Server通过mod_ssl模块来实现对SSL/TLS的支持,所以等下环境搭建的时候需要安装mod_ssl模块

    SSL涉及到的内容非常繁杂,包括各种术语、命令、算法等,所涉及到的我都没有完全理解,此篇随便笔者将会把自己理解的都尽量解释一下,如果需要深究,需要花大量的时间来完成

    https协议默认的端口号为443

    创建CA(Certificate Authority)

    CA也称为"根证书" 

    服务端做了一个证书,但是这是没有法律效力的,谁都可以自己做证书,就根本达不到安全的目的!所以就要有一个机构,负责来确认服务端的身份,然后统一的签发证书,这样才能有权威性 

    当用户用浏览器通过HTTPS协议访问一个网站,网站首先会发过来一个自己的证书(certificate),接下来浏览器就会到权威机构(CA),去验证一下这个证书是不是它签发的,如果是的话,就信任这个网站的证书,继续访问。如果不是的话,要怎么处理就依赖于实现了,一般的浏览器会弹出一个警告,让用户自己决定要不要继续访问,当然直接拒绝也是可以的 

    现在国际上有3大CA机构,如果是要自己做一个网站的话,如上所述,一般是需要请这些权威机构帮忙签发证书的!现在所有的主流浏览器,默认都安装了这些CA的根证书,所以如果网站的证书是这些权威机构签发的,浏览器就不会发出警告了。比如淘宝网证书是由GlobalSign签发的,所以访问淘宝网,浏览器不会发出警告

    这里还有一个链条的关系,比如我有10个子网站,如果每个都要去找CA签发证书,就很麻烦,我可以找CA给我签发一个次级根证书,然后再用这个次级根证书给自己签发10个证书,那么只要客户的浏览器里有CA根证书就可以了,这10个证书都可以通过认证,不要求客户安装次级根证书

    其实如果是企业应用,那完全可以自己给自己当CA,因为可以要求目标用户(操作系统)安装自己的CA根证书,效果是一样的,还可以省下请权威CA签发证书的费用(互联网应用分发自己的CA到无数的互联网用户上,难度非常大)

    环境搭建

    Linux一台6.4  IP(192.168.10.200)

    测试用我们的windows

    首先我们把装好的Linux系统配上IP地址!(不要配置错哦)

    image

    配置好了,不要忘记重新启动网络。然后在拼一下windows的IP地址!看看通不通!

    image

    之后我们安装httpd和openssl这个几个软件包。

    image

    这些我提前安装的,到后面还需要安装一个包。那个一会到了后面再讲

    这些都安装好了之后我们启动Apache网站,看默认的是否起来

    image

    然后我配置Apache的SSL,那个Apache配置到此就结束了!

    进入openssl的配置目录

    image

    查看文件

    image

    接下来创建CA私钥(先安装一个这个软件包image

    安装好之后进入到/etc/pki/tls/certs目录,我们在在里面生成私钥

    image

    成立私钥

    image

    接下来创建公钥

    image

    创建好之后,创建证书

    image

    这块内容改天解释,或者自己百度一下

    这三样全部好了之后,我们在次查看这个目录下!是不是多了三个文件

    image

    把私钥移到/etc/pki/tls/private目录下

    image

    进入到/etc/pki/tls/private目录下,查看。给予权限

    image

    到此为止,SSL也创建好了!开始配置SSL配置文件

    (/etc/httpd/conf.d/)这个目录下,如果下面没有这个配置文件,我们在安装一个软件包{yum install –y  mod_ssl}安装好后再次查看,此时就有了。打开配置文件ssl.conf      还有SSL默认监听的端口是443

    找到下面两行修改一下证书名称就好了。

    image

    最后我们关闭防火墙和selinux这两项!重启服务器

    测试

    image

    此时服务器搭建完成了!点击继续浏览此网站(不推荐)。继续流浪此网页!。正常打开

    总结:注意一些小的方面,私钥和公钥要分清!那个主要那个次要。

  • 相关阅读:
    软件性能测试
    我为何转来博客园
    【5】查询练习:DISTINCT、Between...and...、in、order by、count
    第5章:pandas入门【3】汇总和计算描述
    【4】建点表,填点数
    【3】数据库三大设计范式
    【2】约束
    【1】基本操作
    第5章:pandas入门【2】基本功能
    第5章:pandas入门【1】Series与DataFrame
  • 原文地址:https://www.cnblogs.com/9426yu/p/4831993.html
Copyright © 2011-2022 走看看