zoukankan      html  css  js  c++  java
  • 配置ca服务器和http,mail加密

    一·CA介绍 

      certificate authority   数字证书授权中心

      被通信双方信任的、独立的第三方机构

      负责证书颁发、验证、撤销等管理

    数字证书

      经证书授权中心数字签名的包含公开密钥拥有者信息以及公开密钥的文件

      

    国内常见的CA机构

      中国金融认证中心(CFCA)

      中国电信安全认证中心(CTCA)

      北京数字证书认证中心(BJCA)

    PKI   public key infrastructure  公钥基础设施

      一套标准的密钥管理平台

      通过公钥加密、数字证书技术确保信息安全

    PKI体系的基本组成

      权威认证机构(CA)

      数字证书库、密钥备份及恢复系统

      证书作废系统、应用接口

     openssl 加密工具  做数据加/解密

      实现SSL/TLS协议及各种加密用应用

      -创建并管理私钥、公钥、证书、证书服务

      -使用公钥加解密

      -使用各种算法进行加解密

      -计算信息摘要

    对称加密

    enc  指定算法    des3三遍 -e 加密 -d  解密 -in 源文件 -out  加解密输出后的文件

      #openssl  enc  -des3  -e  -in  f1.txt  -out  f1.txt.enc

      #openssl  enc  -des3  -d  -in  f1.txt.enc  -out  f1.txt

      #file f1.txt

      #file f1.txt.enc

    搭建ca服务器

    1.配置CA证书签发环境  

      # ls /etc/pki/tls/openssl.cnf

      # rpm -qf /etc/pki/tls/openssl.cnf

      #vim  /etc/pki/tls/openssl.cnf

      40 [ CA_default ]              //默认环境

      42 dir       = /etc/pki/CA         //CA相关文件的默认目录

      43 certs           = $dir/certs      //为用户颁发数字证书的存放位置

      45 database        = $dir/index.txt    //证书数据的索引文件,需手动建立

      50 certificate     = $dir/my-ca.crt     //CA服务器根证书文件

      51 serial          = $dir/serial      //序号记录文件,需手动建立,从01开始

      55 private_key     = $dir/private/my-ca.key    //CA服务器私钥文件

      84 [ policy_match ]         //匹配策略

      85 countryName             = match   //国家一样

      86 stateOrProvinceName     = match  //省份一样

      87 organizationName        = match   //公司一样

      128 [ req_distinguished_name ]        //证书请求的识别信息

      130 countryName_default             = CN      //国家

      135 stateOrProvinceName_default     = beijing   //省

      138 localityName_default            = beijing      //城市

      141 0.organizationName_default      = tarena   //公司

      148 organizationalUnitName_default  = ope     //部门

    根据需要建立index.txt、serial文件

      # touch  /etc/pki/CA/index.txt

      # echo 01 >  /etc/pki/CA/serial

      #chmod 600 index.txt serial

    2 为CA服务器生成私钥    

      #cd  /etc/pki/CA/private/

      # openssl  genrsa  -des3  2048  >  my-ca.key      (设置保护私钥的密码123456)

      # chmod  600 my-ca.key

    3 为CA服务器创建根证书 

      #cd  /etc/pki/CA

      #openssl  req  -new  -x509  -key  /etc/pki/CA/private/my-ca.key  -days 365  > my-ca.crt

      req请求  x509证书格式 

      #chmod 600 my-ca.crt

    4 发布根证书  (web ftp 等提供给用户下载)

    5 客户端下载安装根证书

      

      中间证书:数字证书

    二、网站加密  http+ssl

    1 配置网站服务器192.168.4.50 支持客户端使用https  443协议访问

      1.1 启用httpd服务                                                                   

        #yum  -y   install httpd

        #echo  12345  >  /var/www/html/test.html

        #echo  "hello boy"  >  /var/www/html/index.html

        #service   httpd  start ; chkconfig  httpd on

        #netstat  -utnalp  | grep httpd   (80)

        #修改本地hosts(没有dns)

      1.2 创建私钥文件

        # cd  /etc/pki/tls/private/

        #openssl  genrsa  2048  >  www.key

      1.3 创建证书请求文件,并上传给ca服务器

        #openssl  req获取  -new  -key   /etc/pki/tls/private/www.key  >  /root/www.csr   (必须要与ca服务器policy_match84行规则一样)

        #scp   /root/www.csr   192.168.4.100:/root/

    2  CA服务器的配置192.168.4.100

      2.1 审核证书请求文件,并签发数字证书给网站服务器

        #ls  /root/www.csr

        #cd /etc/pki/CA/certs/

        # openssl  ca  -in  /root/www.csr  >  www.crt  

        #scp   www.crt   192.168.4.50:/root/

      2.2 配置网站服务4.50运行时加载私钥文件和数字证书文件

        #mv   /root/www.crt    /etc/pki/tls/certs/

        #ls  /etc/pki/tls/private/www.key

        #yum  -y   install  mod_ssl

        #sed   -n  '100p;107p'  /etc/httpd/conf.d/ssl.conf

        SSLCertificateFile /etc/pki/tls/certs/www.crt

        SSLCertificateKeyFile /etc/pki/tls/private/www.key

        重启服务

        #systemctl   restart  httpd

        #netstat  -untlap  | grep httpd   (443  80)

    3 客户端验证4.254

      # sed -i '$a192.168.4.50  sec50.chen.com  www.chen.com' /etc/hosts

      #ping     www.chen.com

      下载ca根证书并安装

      在浏览器里导入根证书

      访问:  https://www.chen.com   (没有不受信任的提示,问题看技术详细--因为没有ca的根证书)

    4 配置网站服务接收到访问80端口的请求时把请求转给本机的443端口

      #vim   /etc/httpd/conf/httpd.conf

      <IfModule ssl_module>

          SSLRandomSeed  startup  builtin                 //执行内建的函数;内键指令

          SSLRandomSeed  connect  builtin

      </IfModule>

      RewriteEngine  on

      RewriteCond  %{SERVER_PORT}  !^443$           //重写条件,服务端口,不是443则成立

      RewriteRule  (.*)  https://%{SERVER_NAME}/$1  [R]      //重写规则 , .* 表示后面test任意,R替换,将$1替换为https://%{SERVER_NAME}

      #systemctl  restart    httpd

      #firefox  http://www.chen.com

    三、 邮件加密  192.168.4.50

      # yum -y install postfix  dovecot  cyrus-sasl

      #systemctl   start  postfix ; systemctl   enable  postfix    //发邮件  

      #systemctl   start  dovecot ; systemctl   enable  dovecot    //收邮件

    相关协议及端口

      SMTP(25)+ TLS/SSL

      POP3(110)、POP3S(995)

      IMAP(143)、IMAPS(993)

    1 邮件服务器的配置

      1.1  生成私钥文件

        # cd  /etc/pki/tls/private/

        # openssl  genrsa  2048  >  mail.key 

      1.2 创建证书请求文件并上传给CA服务器 (mail.tedu.cn)

        #openssl  req  -new  -key   /etc/pki/tls/private/mail.key  >  /root/mail.csr

        #  scp /root/mail.csr  192.168.4.100:/root/

    2 CA服务器的配置

      2.1审核并签发数字证书

        #ls  /root/mail.csr

        #cd /etc/pki/CA/certs/

        #openssl  ca  -in  /root/mail.csr  >  mail.crt        

        #scp  mail.crt    192.168.4.50:/root/

    3  邮件服务器配置服务在运行是加载数字证书文件和私钥文件 (收邮件服务)

      # vim  /etc/dovecot/conf.d/10-ssl.conf  

       14 ssl_cert = </etc/pki/dovecot/certs/mail.crt

       15 ssl_key = </etc/pki/dovecot/private/mail.key

       # cp  /etc/pki/tls/certs/mail.crt  /etc/pki/dovecot/certs/

      # cp  /etc/pki/tls/private/mail.key   /etc/pki/dovecot/private/

      重启服务

      #systemct  restart   dovecot

      #netstat  -untnalp  | grep dovecot   (110  143  995   993)

    4 邮件服务器配置服务在运行是加载数字证书文件和私钥文件 (发邮件服务)

      #cp /root/mail.crt    /etc/pki/tls/certs/

      # vim /etc/postfix/main.cf

      smtpd_use_tls = yes   //启用加密传输

      #smtpd_tls_auth_only = yes    //禁用明文加密,若启用此项,则非TLS的SMTP通信将被阻止

      smtpd_tls_key_file = /etc/pki/tls/private/mail.key

      smtpd_tls_cert_file = /etc/pki/tls/certs/mail.crt

      #smtpd_tls_loglevel = 1                  //排错阶段可启用此配置

       #systemctl  restart   postfix

      #netstat  -utnalp  | grep master

    5 客户端配置:

    在客户端软件里配置使用加密收/发邮件

     

      

  • 相关阅读:
    Java IO包装流如何关闭?
    Validator关于js,jq赋值不触发验证解决办法
    4 统计量&抽样分布
    3 概率的基本概念&离散型随机变量
    2 数据的概括性度量
    1 数据 & 图表
    Python 闭包
    一个自动修正数据时间和补全缺失数据的MapReduce程序
    MapReduce原理
    Hadoop MapReduce常用输入输出格式
  • 原文地址:https://www.cnblogs.com/wwchihiro/p/9372649.html
Copyright © 2011-2022 走看看