说明
PKI的部署,可以分为***-Only和企业PKI的部署,***-Only 顾名思义就是只用于***设备的验证用途,而dot1x和其他方面 ***-Only就无用了,这时候就必须部署企业的PKI,企业PKI的应用比较复杂,可以提供多种不同业务,比如***、dot1x、HTTPS。
CA服务器的选择
我们可以用微软的CA服务器或者是Cisco IOS 12.4以后的来作为CA服务器,如果确定使用IOS作为CA服务器的话,那么它的用途只是为***提供服务,并且只是在***对等体不是非常多的情况下,因为 IOS默认把证书的信息存储在NVRAM中,如果申请证书的人比较多的话,那么NVRAM提供的空间是不够的,通常我们建议如果用IOS作为CA服务器的话,那么就把证书信息存储在外部服务器中。
当然,更为推荐的是使用微软的CA服务器,因为它的扩展性和性能都是非常好的,能够提供不同的业务类型,还有很好的备份和恢复能力,并且能够和域做联动。
部署PKI的一个重要前提
在部署PKI的时候,一个重要的前提就是时间,因为证书都是有有效期的,我们设备的时间必须落在这个证书的有效期范围内,如果检查到时间不对的话,那么这个证书就会被认为是无效的,所以在部署的时候,一定要确保设备或电脑的时间与CA服务器的时间一致。可以在内部部署NTP服务器,也可以利用公网上得到源时钟。
IOS的CA服务器部署
0、时间是PKI系统的另外一个核心部分,所以必须设置时间和时区
clock timezone GMT 8
clock set 13:10:00 17 nov 2012
1、IOS只支持SCEP的在线方式或者离线方式进行申请正证书,,所以必须打开http服务器,IOS只支持HTTP形式来传递证书信息。
ip http server
2、创建一个RSA的密钥对,建议强度为2048 ,因为现在1024也是不安全的。 (可选)
crypto key generate rsa modulus 1024 label cciese exportable
为什么说是可选的呢,因为在创建CA服务器后,系统会检查本地是否有RSA的密钥,如果没有就会自动生成一个RSA 1024强度的,这里我是强烈建议创建一个有标签,并且强度为2048的RSA密钥对,exportable参数是这个密钥是可导出的,为什么要可导出,因为我们可以备份这个密钥对,这是非常有必要的,也是在实际应用中必须要做的。
3、配置PKI服务器的参数
(1)crypto pki trustpoint CA (可选)
rsakeypair cciese
注意:如果不需要备份CA服务器的话,也就是密钥对由系统产生,那么完全不需要这一步骤,这个就是调用自己产生的RSA密钥对。
(2)crypto pki server CA
1、issuer-name:是颁发着的个人信息,其中cn是必须的,其余的都是可选,如果是实验环境的话,可以简单些,但是在实际应用中,建议完整话,因为我们可以一些字段的信息来做不同的策略。
2、其中还有许多参数可以选择,比如使用什么hash算法、根证书的有效期、颁发证书的有效期、和CRL、证书存放的位置。
3、no shutdown:就是启用这个PKI server,需要输入两次密码,这个密钥是对私钥进行保护,形成一个PKCS#12的文件存放在NVRAM中。
show crypto pki server 可以检查当前CA服务器的状态,必须两个enabled才是正常的,如果显示为disable的话,那么最常见的可能 1、时间不正确 2、http服务没打开
不正ok的状态:
可以在nvram中查看到关于CA服务器的证书信息保存,CA.ser就是根证书, CA.crl就是吊销列表 而CA_0001.P12是PKCS#12的文件,保护私钥的。
此致,一个比较有效的CA服务器搭建完成,关于CA服务器的备份和还原将在后续介绍。
其余参数介绍:
1、grant auto :自动颁发证书 ra-auto:允许RA的请求证书,自动颁发
2、database level complete :默认情况下,数据库是最小级别(属性就比较少,因为路由器默认存放在NVRAM里面)
3、cdp-url ftp://10.1.1.201/ca.crl 存放吊销列表到一个外部服务器
4、database url ftp://10.1.1.200 存放CA服务器的database到外边服务器
database username {} password {}:可能FTP服务器需要用户名和密码认证
5、mode ra 代表这个是CA的代理服务器
6、lifetime certificate:规定证书的有效期,默认为1年
7、lifetime ca-cetificate :定义根证书的有效期
8、lifetime crl :定义CRL的时间,默认为4个小时
9、cdp-url :当IOS作为CA服务器时,PKI信息又存储在外部数据库中,需要定义,只支持http和ldap方式,注意的是:保存的名字与server的名字一致: 比如server CA,那么保存的名字为CA.crl
一个比较好的CA服务器部署:1、数据库存于外部的一个安全的服务器上 2、时间有效期根据实际情况而定 3、颁发证书建议是手动的 4、有可导出的密钥对。
实验环境下的CA服务器搭建
有时候,我们只是希望实验环境下来做做CA的一些实验或者特性,那么就不需要那么严谨了 (虽然我推荐第一种),介绍两种比较简单搭建CA服务器的步骤。
1、在时间和http服务器打开的情况下
2 crypto pki server CA
no shutdown
这样,一个CA服务器就搭建完成了,这样只能应用到实验环境中,否则,后期会很麻烦。
MS的服务器部署
现在MS服务器的OS用的多的是03和08了,但是,03的话,默认情况下是不支持SCEP的,必须安装插件才支持,而08服务器已经集成了SCEP的功能,所以,这里介绍用2003服务器部署CA 服务器。
1、2003服务器安装证书颁发机构之前,必须安装IIS的组件,否则会出现一些问题。
2、安装证书服务
如果是域环境的话,可以部署企业级别的证书,那些证书可以用于dot1x和SSL ***的证书验证,更多的是面向用户的。但是现在,还不支持SCEP的形式为***颁发证书,因为2003默认情况下是没有集成的。
这样的话,微软的服务器就支持SCEP功能了
验证MS服务器CA服务器
1、 http://localhost/certsrv/ 当打开了出现了一个页面的话,就证明服务器没问题。
2、http://localhost/certsrv/mscep/mscep.dll,当出现了如下的画面,就证明SCEP工作是正常的
这个密码每60分钟刷新一次,或者被使用了一次就必须更新。
总结:关于CA服务器的搭建其实非常简单,如果是实验环境的话,可以用IOS作为CA服务器即可,如果是实际应用的话,那么就建议使用MS的CA服务器,因为扩展性和性能都会有很大的优势。 另外2008或者2012比2003要功能强大很多,而且还集成了SCEP等功能。
本文首发于公众号:网络之路博客