OpenSSL是目前最流行的SSL密码库工具,其提供了一个通用、健壮、功能完备的工具套件,用以支持SSL/TLS协议的实现。
下载:http://slproweb.com/products/Win32OpenSSL.html
一份完整的OpenSSL生成证书命令(ca.bat):
@rem 进入目录 IF NOT EXIST "D:\CA\" mkdir "D:\CA\" D: cd D:\CA\ @rem 创建秘钥保存目录 IF NOT EXIST private mkdir private @rem 创建证书保存目录 IF NOT EXIST certs mkdir certs @rem 生成随机数[-out:指定输出文件][1000:指定随机数长度] openssl rand -out private/.rand 1000 @rem 生成根证书 @rem 生成根证书私钥(pem文件)[genrsa:使用RSA算法产生私钥][-aes256:使用256位密钥的AES算法对私钥进行加密][-out:输出文件的路径][2048:指定私钥长度] openssl genrsa -aes256 -passout pass:PasswordCa -out private/ca-key.pem 2048 @rem 生成根证书签发申请文件(csr文件)[req:执行证书签发命令[-new:新证书签发请求][-key:指定私钥路径][-out:输出的csr文件的路径][-subj:证书相关的用户信息(subject的缩写)] openssl req -new -key private/ca-key.pem -passin pass:PasswordCa -out private/ca.csr -subj "/C=CN/ST=BeiJing/L=TongZhou/O=Organization/OU=OrganizationalUnit/CN=MyName" @rem 生成自签发根证书(cer文件)[x509——生成x509格式证书][-req:输入csr文件]-days:证书的有效期(天)][-sha1:证书摘要采用sha1算法][-extensions:按照openssl.cnf文件中配置的v3_ca项添加扩展][-signkey:签发证书的私钥][-in:要输入的csr文件][-out:输出的cer证书文件] openssl x509 -req -days 365 -sha256 -extensions v3_ca -signkey private/ca-key.pem -passin pass:PasswordCa -in private/ca.csr -out certs/ca.cer @rem 用根证书签发server端证书 @rem 生成服务端私钥 openssl genrsa -aes256 -passout pass:PasswordServerCa -out private/server-key.pem 2048 @rem 生成证书请求文件 openssl req -new -key private/server-key.pem -passin pass:PasswordServerCa -out private/server.csr -subj "/C=CN/ST=BeiJing/L=TongZhou/O=Organization/OU=OrganizationalUnit/CN=MyName" @rem 使用根证书签发服务端证书[-CA:指定CA证书的路径][-CAkey:指定CA证书的私钥路径][-CAserial:指定证书序列号文件的路径][-CAcreateserial:表示创建证书序列号文件(即上方提到的serial文件),创建的序列号文件默认名称为-CA,指定的证书名称后加上.srl后缀] openssl x509 -req -days 365 -sha256 -extensions v3_req -CA certs/ca.cer -CAkey private/ca-key.pem -passin pass:PasswordCa -CAserial ca.srl -CAcreateserial -in private/server.csr -out certs/server.cer @rem 用根证书签发client端证书 @rem 生成客户端私钥 openssl genrsa -aes256 -passout pass:PasswordClientCa -out private/client-key.pem 2048 @rem 生成证书请求文件 openssl req -new -key private/client-key.pem -passin pass:PasswordClientCa -out private/client.csr -subj "/C=CN/ST=BeiJing/L=TongZhou/O=Organization/OU=OrganizationalUnit/CN=MyName" @rem 使用根证书签发客户端证书 openssl x509 -req -days 365 -sha256 -extensions v3_req -CA certs/ca.cer -CAkey private/ca-key.pem -passin pass:PasswordCa -CAserial ca.srl -in private/client.csr -out certs/client.cer pause
参考链接: