使用Openssl生成CA及签发证书方法
准备步骤
下载Openssl并编译生成响应的库,假设目录为E:/电子书/OpenSSL/openssl-0.9.8g,编译成功后Openssl会将响应的lib,dll及可执行程序存放到out32dll文件中
生成CA
1. 在DOS窗口中转换到out32dll目录下。
例如:cd E:/电子书/OpenSSL/openssl-0.9.8g/out32dll
2. 生成CA的key文件
运行如下命令:
openssl genrsa -out catest.key 1024
运行成功后,在out32dll目录下可以看到CA的key文件catest.key
3. 生成CA证书
运行如下命令:
openssl req -new -x509 -key catest.key -out catest.crt
运行成功后,在out32dll目录下可以看到CA证书catest.crt
注意事项:
(1) 在输入命令后,系统提示输入证书的一些信息,内容如下:
Country Name (2 letter code) [AU]:CN
State or Province Name (full name) [Some-State]:BeiJing
Locality Name (eg, city) []:BDA
Organization Name (eg, company) [Internet Widgits Pty Ltd]:SINOI
Organizational Unit Name (eg, section) []:media
Common Name (eg, YOUR name) []:wlq
Email Address []:wlq_729@163.com
4. 上述步骤成功后就可以使用该CA证书为其他证书请求进行签发证书
利用CA对证书请求进行签发证书
假设要生成一个名称为testcrt的证书
1. 在DOS窗口中转换到out32dll目录下。
例如:cd E:/电子书/OpenSSL/openssl-0.9.8g/out32dll
2. 生成的key文件
运行如下命令:
openssl genrsa -out testcrt.key 1024
运行成功后,在out32dll目录下可以看到CA的key文件testcrt.key
3. 生成CSR文件
运行如下命令:
openssl req -new -key testcrt.key –out testcrt.csr
运行成功后,在out32dll目录下可以看到testcrt.csr文件
注意事项:
(1) 在输入命令后,系统提示输入证书的一些信息,内容如下:
Country Name (2 letter code) [AU]:CN
State or Province Name (full name) [Some-State]:BeiJing
Locality Name (eg, city) []:BDA
Organization Name (eg, company) [Internet Widgits Pty Ltd]:SINO
Organizational Unit Name (eg, section) []:media
Common Name (eg, YOUR name) []:server
Email Address []:server@163.com
Please enter the following 'extra' attributes
to be sent with your certificate request
A challenge password []:123456
An optional company name []:
4.CSR文件必须有CA的签名才可形成证书,利用上面生成的CA证书对该csr文件进行签名生成证书
运行命令如下:
openssl x509 -req -in testcrt.csr –out testcrt.crt -CA catest.crt –CAkey
catest.key -days 365 –CAcreateserial
运行成功后,在out32dll目录下可以看到被签名后生成的证书testcrt.crt,打开该证书可
以看到颁发者字段为上面生成的CA的信息,主题字段为在步骤3中输入的信息
注意事项
在上述过程中,如果出现类似openssl目录不正确的错误的话,原因可能是由于没有安装openssl造成的,这个可以通过按照openssl提供的INSTALL.W32文件中的如下命令来安装:
nmake -f ms/ntdll.mak install
本人在刚开始没有执行此命令时就出现一些类似什么文件找不到的错误,执行此语句后就不出错了。