Chinaunix首页 | 论坛 | 博客
  • 博客访问: 2291709
  • 博文数量: 168
  • 博客积分: 6641
  • 博客等级: 准将
  • 技术积分: 1996
  • 用 户 组: 普通用户
  • 注册时间: 2007-06-02 11:49
文章存档

2020年(4)

2019年(6)

2017年(1)

2016年(3)

2015年(3)

2014年(8)

2013年(2)

2012年(12)

2011年(19)

2010年(10)

2009年(3)

2008年(17)

2007年(80)

分类: LINUX

2012-02-28 22:09:10


构建IMAPS服务+CA证书应用
 
2012-02-28  TsengYia#126.com http://tsengyia.blog.chinaunix.net/
 
##############################################################################
系统环境:
    RHEL 5.5 [2.6.18-238.el5]
 
软件环境:
    openssl-0.9.8e-12.el5_4.6
    dovecot-1.0.7-7.el5
    mutt-1.4.2.2-3.0.2.el5
##############################################################################
 
一、搭建私有的CA中心
    适用于企业网内部,可以为公司内的其他服务器颁发CA证书。如果已经有现成的CA服务器,则此步骤可以省略。
 
1. 建立签署环境
  1)修改配置文件
[root@casvr ~]# cd /etc/pki/tls/
[root@casvr tls]# cp openssl.cnf openssl.cnf.origin
[root@casvr tls]# vi openssl.cnf
......
[CA_default]
dir  = /etc/pki/CA           #//CA签署工作目录
certs  = $dir/certs            #//证书的存放位置
crl_dir  = $dir/crl              #//证书废除列表(CRL)的存放位置
database = $dir/index.txt        #//数据库索引文件
new_certs_dir = $dir/newcerts         #//新生成的证书文件的存放位置
......
certificate = $dir/my-ca.crt        #//根证书文件
serial  = $dir/serial           #//下一个证书序号
......
crl  = $dir/my-ca.crl        #//证书废除列表文件
private_key = $dir/private/my-ca.key        #//CA服务器的私钥文件
......
[req_distinguished_name]
countryName  = Country Name (2 letter code)
countryName_default = CN
......
stateOrProvinceName  = State or Province Name (full name)
stateOrProvinceName_default = Beijing
localityName  = Locality Name (eg, city)
localityName  = Beijing
0.organizationName = Organization Name (eg, company)
0.organizationName_default = TsengYia Linux Tech, Inc.
......
commonName  = TYLT Certificate Authority
emailAddress  = TsengYia126.com
......
  2)创建工作目录,及必要的文件
[root@casvr tls]# ls -ld /etc/pki/CA
drwx------ 3 root root 4096 2011-01-26 /etc/pki/CA
[root@casvr tls]# cd /etc/pki/CA/
[root@casvr CA]# mkdir certs crf newcerts
[root@casvr Ca]# touch index.txt
[root@casvr Ca]# echo 01 > serial

2. 为CA服务器生成私钥
[root@casvr Ca]# openssl genrsa -out private/my-ca.key -des3 2048
Generating RSA private key, 2048 bit long modulus
......
Enter pass phrase for private/my-ca.key:           #//设置私钥口令
Verifying - Enter pass phrase fror private/my-ca.key:
[root@casvr Ca]# chmod 600 private/my-ca.key

3. 为CA中心创建自己的证书(根证书)文件
[root@casvr Ca]# openssl req -new -x509 -key private/my-ca.key -days 365 > my-ca.crt
Enter pass phrase for private/my-ca.key:           #//验证私钥口令
......
Country Name (2 letter code)[CN]:
State or Province Name (full name)[Beijing]:
Locality Name (eg, city)[Beijing]:
Organization Name (eg, company)[TsengYia Linux Tech, Inc.]:
Organizational Unit Name(eg, section)[]:
TYLT Certificate Authority[]:
TsengYia126.com[]:
[root@casvr Ca]# ls -l my-ca.crt
-rw-r--r-- 1 root root 1411 02-27 14:01 my-ca.crt

4. 发布根证书文件
    发布方式不限,使任何人都可以下载此证书文件,用来验证由本CA中心所颁发的其他证书。
[root@casvr Ca]# yum -y install httpd
[root@casvr Ca]# mkdir /var/www/html/certs
[root@casvr Ca]# cp my-ca.crt /var/www/html/certs/TYLT-CA.CRT
[root@casvr Ca]# service httpd start ; chkconfig httpd on
 
 
二、为Dovecot服务器创建CA证书
1. 在Dovecot服务器上
  1)生成服务私钥(KEY)
[root@mailsvr ~]# openssl genrsa -out imaps-svr.key 1024
[root@mailsvr ~]# chmod 600 imaps-svr.key
  2)生成签名请求文件(CSR)
[root@mailsvr ~]# openssl req -new -key imaps-svr.key -out imaps-svr.csr
......
Country Name (2 letter code)[GB]:CN
State or Province Name (full name)[Berkshire]:Beijing
Locality Name (eg, city)[Newbury]:Beijing
Organization Name (eg, company)[My Company Ltd]:TsengYia Linux Tech, Inc.
Organizational Unit Name(eg, section)[]:
Common Name (eg, your name or your server's hostname)[]:mail.mydomain.com
Email Address []:postmaster@mydomain.com
......
[root@mailsvr ~]# chmod 600 imaps-svr.csr
  3)将签名请求文件提交给CA中心

2. 在CA中心服务器上
  1)查看收到的签名请求文件
[root@casvr CA]# openssl req -in imaps-svr.csr -noout -text
......
  2)根据签名请求创建CA证书文件
[root@casvr CA]# openssl ca -in imaps-svr.csr -out imaps-svr.crt
Using configuration from /etc/pki/tls/openssl.conf
Enter pass phrase for /etc/pki/CA/private/my-ca.key:       #//验证CA中心的私钥口令
[root@casvr CA]# ls -l imaps-svr.*
-rw-r--r-- 1 root root 3836 02-27 14:38 imaps-svr.crt
-rw------- 1 root root  745 02-27 14:38 imaps-svr.csr
  3)将CA证书文件颁发给Dovecot服务器
      邮件、FTP、HTTP等任一种方式均可。
 
 
三、Dovecot服务器启用CA证书,基于IMAPS协议提供加密传输
1. 修改Dovecot配置
[root@mailsvr ~]# vi /etc/dovecot.conf
protocols = imaps
...
ssl_cert_file = /etc/pki/dovecot/certs/dovecot.pem
ssl_key_file = /etc/pki/dovecot/private/dovecot.pem
[root@mailsvr ~]# service dovecot start; chkconfig dovecot on
[root@mailsvr ~]# netstat -anpt | grep dovecot
tcp   0   0 :::993    :::*   LISTEN   3559/dovecot
2. 部署新的证书文件、私钥文件
[root@mailsvr ~]# cp imaps-svr.crt /etc/pki/dovecot/certs/dovecot.pem
cp: 是否覆盖“/etc/pki/dovecot/certs/dovecot.pem”? y
[root@mailsvr ~]# cp imaps-svr.key /etc/pki/dovecot/private/dovecot.pem
cp: 是否覆盖“/etc/pki/dovecot/private/dovecot.pem”? y
 
 
四、使用mutt客户端测试IMAPS协议
1. 修改muttrc配置,强制使用SSL
[root@client ~]# mkdir .mutt
[root@client ~]# vi .mutt/muttrc
set folder=imaps://mail.mydomain.com/
set spoolfile=imaps://mail.mydomain.com/
set imap_force_ssl=yes
set certificate_file=~/.mutt/TYLT-CA.CRT

2. 从CA中心下载根证书
[root@client ~]# wget
[root@client ~]# mv TYLT-CA.CRT ~/.mutt/

3. 运行mutt程序进行测试
    首先会看到“SSL connection using TLSv1/SSLv3 (DHE-RSA-AES256-SHA)”的提示,然后出现“Username at mail.mydomain.com:”等
待输入邮箱用户名验证,提交用户名后再提示输入密码。
    。。。。。。

##############################################################################
 
阅读(1856) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~