一份完整的OpenSSL生成证书命令

发布时间:2018-04-10

OpenSSL是目前最流行的SSL密码库工具,其提供了一个通用、健壮、功能完备的工具套件,用以支持SSL/TLS协议的实现。

官网:https://www.openssl.org/

下载: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


参考链接:

使用 openssl 生成证书(含openssl详解)

OpenSSL生成根证书CA及签发子证书