• ssl协议,openssl,创建私有CA


    SSL是Security Socket Layer;安全的套接字层

    他介于HTTP和TCP协议层之间

    SSL是Netscape公司开发的,属于个人

    TLS是标准委员会制定的

    OpenSSL是SSL的开源实现

    CA:证书颁发机构:Certification Authority


    两台主机要通信,他们需要先建立链接,建立链接的时候又需要保证这个链接是安全的,那么如何保证安全呢?

        这里就需要用到SSL来保证传输的安全性,SSL可以生成一对秘钥对,在建立安全链接的时候,客户端发出请求到服务器端,服务器端收到请求,把自己的公钥通过网络传给客户端,然后安全链接就建立了,之后发出的包都是通过这个安全链接来传送的,这个安全链接是虚拟的,只是每一个数据包的首部都增加了一个对应的SSL头部的字段,经过解密以后才能得到HTTP包的内容,客户端收到包后,需要使用服务端给发送过来的公钥来进行相应字段段的解密,解密成功以后,才可以得到对应的HTTP包。

    一个服务商发布了一个软件,希望得到用户们的支持,但是用户担心下载到的软件不安全,这么如何保证这个软件的安全性?

        这里就需要用到CA来保证这个服务商发布的软件是安全的,CA会给这个服务商颁发一个数字证书,这个证书就可以证明这个软件是安全的,我们可以放心使用。那么,这个证书颁发机构肯定是权威的,不然出了问题找谁去呢,对吧。比如我们新建了一个网站,这个网站没有经过CA认证,没有给你颁发证书,那你的网站到底安全不安全呢,这时候如果有客户访问我们的网站,就会弹出来一个框告诉我们这个网站不一定安全,出了什么事你自己兜着。这时候胆子小点的,或者担心中招的朋友肯定就不会接着访问了,然后我们的网站慢慢就没人访问了,那这时候你就需要去权威机构买一个证书来证明你的网站是安全的。所以CA就担任了这个作用了,这里只说了道理,具体的可以上http://kb.cnblogs.com/page/194742/ 和 https://baike.baidu.com/item/ca%E8%AF%81%E4%B9%A6/10028741?fr=aladdin这看看。


    接下来是具体的命令:

    //自定义自己的CA来给自己颁发证书

    openssl req -new -x509 -key server1024.key -out server.crt -days 365

    //显示自定义的CA的具体信息

    openssl x509 -text -in server.crt

    //修改CA的配置文件(/etc/pki/tls/openssl.cnf)

    把dir改为绝对路径

    //到/etc/pki/CA/生成对应的私钥

    (umask 077; openssl genrsa -out private/cakey.pem 2048)

    //根据私钥生成对应的自签证书

    openssl req -new -x509 -key private/cakey.pem -out cacert.pem

    //在/etc/pki/CA/下生成对应的其他文件

    mkdir certs newcerts private

    touch index.txt

    touch serial

    echo 01 > serial



    实验:给自己的httpd服务器签发证书(rhel系列)

    1. 到/etc/httpd/目录下创建一个SSL目录

    mkdir /etc/httpd/ssl

    2. 为httpd服务器生成私钥

    cd /etc/httpd/ssl

    (umask 077; openssl genrsa -out httpd.key 1024)

    3. 为httpd服务器生成申请

    openssl req -new -key httpd.key -out httpd.csr 

    之后填写申请表

    4. 填完之后,就可以拿着申请去签名了,下面是签名命令

    openssl ca -in httpd.csr -out httpd.crt -days 365

    5. 截止此处证书签发完毕

    6. 作为CA,怎么查看自己签发过的申请呢?

    cd /etc/pki/CA

    cat index.txt   //index.txt中存放的是签发过的CA证书信息

    cat serial    //下个CA证书的序列号

    7. 生成测试用的证书,仅在rhel系列

    cd /etc/pki/tls/certs

    make httpd.pem

    此方法仅用在测试中,因为私钥也在证书中


    起风了,努力生存
  • 相关阅读:
    Nginx教程(三) Nginx日志管理
    Nginx教程(二) Nginx虚拟主机配置
    官方解析Cookies和Session的区别
    J2EE十三个技术规范
    J2EE十三个规范小结
    tomcat -web.xml里的内容
    tcp协议和udp协议的使用场景
    IntelliJ IDEA创建maven web项目(IDEA新手适用)
    Maven安装与配置
    X86、X64和X86_64区别
  • 原文地址:https://www.cnblogs.com/StivenYang/p/8441300.html
Copyright © 2020-2023  润新知