• CA证书


    hash(哈希,单向散列算法)
    校验数据完整性、不可逆、不管信息多长多短hash值的长度固定不变
    md5:信息摘要算法
    sha1:安全哈希算法
    md5sum和sha1sum

    CA认证中心(ssl/tls)

    httpd+ssl=https
    CA:私钥,数字证书(CA私钥、签名、CA的证书请求)
    http:私钥、数字证书(CA私钥、签名、http的证书请求)
    client:CA数字证书验证http数字证书

    证书安装

    yum install openssl
    配置文件:/etc/pki/tls/openssl.cnf
    178行:basicConstraints=CA:FALSE改为:
    basicConstraints=CA:TRUE 自签署的证书可以使用
    进入/etc/pki/CA执行:
    /etc/pki/tls/misc/CA -newca 生成一个新的CA机构
    会生成CA的私钥
    需要填写身份信息
    A challenge password :
    Enter pass phrase for ../../CA/private/./cakey.pem: 使用私钥自签名
    在/etc/pki/CA/private目录下会生成CA私钥:cakey.pem
    在/etc/pki/CA目录下会生成:
    cacert.pem CA证书
    careq.pem 证书请求

    配置httpd:

    yum install mod_ssl 安装ssl模块支持https
    ls /etc/httpd/modules/mod_ssl.so 安装完成后模块位置
    openssl genrsa -des -out /tmp/server.key 生成私钥并用des保护私钥
    openssl req -new -key /tmp/server.key -out /tmp/server.csr 利用私钥生成证书请求,在生成证书请求时所输入的信息必须和上面CA机构中的信息一致
    将证书请求发给CA机构:
    scp /tmp/server.csr 192.168.2.102:/tmp/
    在CA机构上使用CA的私钥和证书进行数字签名:
    openssl ca -keyfile /etc/pki/CA/private/cakey.pem -cert /etc/pki/CA/cacert.pem -in /tmp/server.csr -out /tmp/server.crt
    将生成http的数字证书发给http服务器:
    scp /tmp/server.crt 192.168.2.104:/tmp/
    编辑http上的ssl配置文件/etc/httpd/conf.d/ssl.conf
    112行:SSLCertificateFile /tmp/server.crt 指定http数字证书的位置
    119行:SSLCertificateKeyFile /tmp/server.key 指定http私钥的位置

    重启apache服务,在重启的时候需要输入http私钥的密码
    客户端测试:
    将CA的证书发给客户端进行验证
    scp /etc/pki/CA/cacert.pem 192.168.2.200:/tmp/
    将cacert.pem导入浏览器

    配置nginx:

    yum install openssl-devel -y
    编译时需要安装 --with-http_ssl_module 模块
    cd /usr/local/nginx/conf/
    openssl genrsa -des3 -out nginx.key 1024 //此时会让你设置一个密码
    openssl req -new -key nginx.key -out nginx.csr
    将nginx.csr拷贝到ca服务器

    在ca服务器上使用CA的私钥和证书进行数字签名:
    openssl ca -keyfile /etc/pki/CA/private/cakey.pem -cert /etc/pki/CA/cacert.pem -in nginx.csr -out nginx.crt
    将生成的数字证书发给nginx服务器:
    scp nginx.crt "nginx服务器"

    修改nginx服务器上的配置:

    server{
    listen 443;
    ssl on;
    ssl_certificate /usr/local/nginx/conf/nginx.crt;
    ssl_certificate_key /usr/local/nginx/conf/nginx.key;
    }

    将80端口重定向到443
    server{
    listen 80;
    server_name "name";
    rewrite ^(.*) https://$server_name$1 permanent;
    }
    重启nginx服务并输入上面设置的密码

    haproxy配置:

    yum install openssl-devel -y
    安装haproxy,增加SSL模块,进入解压目录:
    make TARGET=linux26 CPU=x86_64 PREFIX=/usr/local/haprpxy USE_OPENSSL=1 ADDLIB=-lz
    检查ssl库是否正常:
    ldd haproxy | grep ssl
    make install PREFIX=/usr/local/haprpxy

    制作key文件:
    openssl genrsa -des3 -out /tmp/haproxy.key 1024 //此时会让你设置一个密码
    openssl req -new -key /tmp/haproxy.key -out /tmp/haproxy.csr
    将haproxy.csr拷贝到ca服务器


    在ca服务器上使用CA的私钥和证书进行数字签名:
    openssl ca -keyfile /etc/pki/CA/private/cakey.pem -cert /etc/pki/CA/cacert.pem -in /tmp/haproxy.csr -out /tmp/haproxy.crt //需要输入证书服务器CA私钥(cakey.pem)的密码
    将生成的数字证书发给haproxy服务器:
    scp /tmp/haproxy.crt "haproxy服务器"

    生成.pem文件:
    cat /tmp/haproxy.crt /tmp/haproxy.key | tee /tmp/haproxy.pem


    修改haproxy配置文件:
    添加:
    bind :443 ssl crt /tmp/haproxy.pem //pem文件的路径
    redirect scheme https if !{ ssl_fc } //当访问80端口时自动跳转到443端口

    重启haproxy服务,需要输入创建haproxy.key时设置的密码

  • 相关阅读:
    Java抓取网页数据(原网页+Javascript返回数据)
    Android Bundle类
    【设计模式】命令模式
    oracle触发器实例
    各大名企笔试及面经大全(程序猿必读)
    数据库索引的作用和长处缺点
    一个int类型究竟占多少个字节
    如何遮挡电影英汉字幕
    如何重启mysql服务
    修改mysql默认字符集的方法
  • 原文地址:https://www.cnblogs.com/super-sos/p/8906540.html
Copyright © 2020-2023  润新知