配置ca服务器和http,mail加密

Posted wwchihiro

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了配置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 客户端配置:

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

 

  

 

以上是关于配置ca服务器和http,mail加密的主要内容,如果未能解决你的问题,请参考以下文章

利用CA证书配置安全Web站点

Docker - 通过IDEA和CA证书加密远程链接到服务器上的Docker

Http和https的区别

HTTP加密第二篇

09-OpenLDAP加密传输配置

Apache Httpd 2.2 配置CA证书,实现Https加密通讯