使用OpenSSL建立根CA及自签名证书制作过程

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 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地址一致。

相关文档
最新文档