使用OpenSSL建立根CA及自签名证书制作过程
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
使用OpenSSL建立根CA及自签名证书制作过程
2009-12-24 11:35:32| 分类:openssl |字号订阅
Openssl版本:0.9.8 版本,可从处下载。
1.先建立如下目录结构:
$home/testca # testca 是待建CA的主目录
├─newcerts/ # newcerts子目录将存放CA签发过的数组证书(备份目录)
├─private/ # private目录用来存放CA私钥
└─conf/ # conf目录用来存放简化openssl命令行参数用的配置文件
此外使用命令
echo "01" > serial
touch index.txt
在ca根目录下创建文件serial (用来存放下一个证书的序列号) 和indext.txt (证书信息数据库文件)。
1.生成CA的私钥和自签名证书 (根证书)
创建配置文件:vi "$HOME/testca/conf/gentestca.conf"
文件内容如下:
####################################
[ req ]
default_keyfile = /home/cx/testCA/private/cakey.pem
default_md = md5
prompt = no
distinguished_name = ca_distinguished_name
x509_extensions = ca_extensions
[ ca_distinguished_name ]
organizationName = ss
organizationalUnitName = sstc
commonName = sstcCA
emailAddress = GChen2@ #自己的邮件地址
[ ca_extensions ]
basicConstraints = CA:true
########################################
然后执行命令如下:
cd "$HOME/testca"
openssl req -x509 -newkey rsa:2048 -out cacert.pem -outform PEM -days 2190 -config "$HOME/testca/conf/gentestca.conf"
执行过程中需要输入CA私钥的保护密码,假设我们输入密码: 888888
可以用如下命令查看一下CA自己证书的内容
openssl x509 -in cacert.pem -text –noout
创建一个配置文件,以便后续CA日常操作中使用
vi "$HOME/testca/conf/testca.conf"
文件内容如下:
########################################
[ ca ]
default_ca = testca # The default ca section
[ testca ]
dir = /home/cx/testCA # top dir
database = $dir/index.txt # index file.
new_certs_dir = $dir/newcerts # new certs dir
certificate = $dir/cacert.pem # The CA cert
serial = $dir/serial # serial no file
private_key = $dir/private/cakey.pem # CA private key
RANDFILE = $dir/private/.rand # random number file
default_days = 365 # how long to certify for
default_crl_days= 30 # how long before next CRL
default_md = md5 # message digest method to use
unique_subject = no # Set to 'no' to allow creation of
# several ctificates with same subject.
Policy = policy_any # default policy
[ policy_any ]
countryName = optional
stateOrProvinceName = optional
localityName = optional
organizationName = optional
organizationalUnitName = optional
commonName = supplied
emailAddress = optional
########################################
1.自己生成公钥密钥,并用测试CA签发数字证书
我们在平时测试时,可以自己用openssl为服务器或用户生成公钥密钥,并用上面创建的CA签发对应私钥(密钥)的数字证书。
假设,我们就用刚才创建CA的操作系统用户为名为testuser的用户创建数字证书,我们要把待创建的私钥、证书等都放在目录$HOME/testuser下:
Ø创建密钥和证书请求(证书请求里包含了公钥)
创建$HOME/testuser目录并执行命令:
mkdir $HOME/testuser
cd $HOME/testuser
openssl req -newkey rsa:1024 -keyout testkey.pem -keyform PEM -out testreq.pem -outform PEM -subj "/O=TestCom/OU=TestOU/CN=testuser"
执行过程中需要输入私钥的保护密码,假设我们输入密码: 222222
其中的CN最好和服务器名或IP地址一致。