openssl自建CA证书(亲验证)
2014-12-09 15:06
183 查看
1. 准备
1) 在工作目录下新建目录
demoCA、demoCA/private、demoCA/newcerts(工作目录:/home/userName)
2) 在demoCA建立一个空文件 index.txt
3) 在demoCA建立一个文本文件 serial, 没有扩展名,内容是一个合法的16进制数字,例如 0000
4) 配置环境变量PATH,加入%JAVA_HOME%/bin(如果安装了多个版本的jdk,最好暂时都在环境变量中去掉,只保留一个)
5) 修改openssl.cnf文件,将生成目录切换到我们自己新建的工作目录中;
dir = /home/userName/demoCA
# Where everything
2. 生成CA签名证书(在命令终端,将目录切换到/home/userName/demoCA,一直在该目录下操作)
openssl req -new -x509 -keyout ca.key -out ca.cer -days 3650
req命令表示创建证书,new参数表示创建私钥而不是从已存在的文件中读取。
输入证书信息时,Country Name填入CN,Common Name输入单位名称,即最后显示的颁发者。
执行完之后,生成ca.key 和ca.cer文件
3. 生成server端待签证书
1) 首先要生成服务器端的私钥(key文件):
openssl genrsa -des3 -out server.key 1024
运行时会提示输入密码,此密码用于加密key文件(参数des3便是指加密算法,当然也可以选用其他你认为安全的算法.),以后每当需读取此文件(通过openssl提供的命令或API)都需输入口令.如果觉得不方便,也可以去除这个口令,但一定要采取其他的保护措施!
去除key文件口令的命令:
openssl rsa -in server.key -out server.key
2) 生成csr(cer)证书
openssl req -new -key server.key -out server.csr
生成Certificate Signing Request(CSR),生成的csr文件交给CA签名后形成服务端自己的证书.屏幕上将有提示,依照其指示一步一步输入要求的个人信息即可.(输入common
name时,要和服务器的域名保持一致,test.baidu.com,)
4. 用生成的CA证书对服务器端的证书进行签名
openssl ca -in server.csr -out server.cer -cert ca.cer -keyfile ca.key
在签名时,如果报“The
stateOrProvinceName field needed to be the same in the CA certificate”,是因为在openssl.cnf中的policy_match里面 的前三个都选了match,修改成
stateOrProvinceName = optional
organizationName = optional
就可以了
1) 在工作目录下新建目录
demoCA、demoCA/private、demoCA/newcerts(工作目录:/home/userName)
2) 在demoCA建立一个空文件 index.txt
3) 在demoCA建立一个文本文件 serial, 没有扩展名,内容是一个合法的16进制数字,例如 0000
4) 配置环境变量PATH,加入%JAVA_HOME%/bin(如果安装了多个版本的jdk,最好暂时都在环境变量中去掉,只保留一个)
5) 修改openssl.cnf文件,将生成目录切换到我们自己新建的工作目录中;
dir = /home/userName/demoCA
# Where everything
2. 生成CA签名证书(在命令终端,将目录切换到/home/userName/demoCA,一直在该目录下操作)
openssl req -new -x509 -keyout ca.key -out ca.cer -days 3650
req命令表示创建证书,new参数表示创建私钥而不是从已存在的文件中读取。
输入证书信息时,Country Name填入CN,Common Name输入单位名称,即最后显示的颁发者。
执行完之后,生成ca.key 和ca.cer文件
3. 生成server端待签证书
1) 首先要生成服务器端的私钥(key文件):
openssl genrsa -des3 -out server.key 1024
运行时会提示输入密码,此密码用于加密key文件(参数des3便是指加密算法,当然也可以选用其他你认为安全的算法.),以后每当需读取此文件(通过openssl提供的命令或API)都需输入口令.如果觉得不方便,也可以去除这个口令,但一定要采取其他的保护措施!
去除key文件口令的命令:
openssl rsa -in server.key -out server.key
2) 生成csr(cer)证书
openssl req -new -key server.key -out server.csr
生成Certificate Signing Request(CSR),生成的csr文件交给CA签名后形成服务端自己的证书.屏幕上将有提示,依照其指示一步一步输入要求的个人信息即可.(输入common
name时,要和服务器的域名保持一致,test.baidu.com,)
4. 用生成的CA证书对服务器端的证书进行签名
openssl ca -in server.csr -out server.cer -cert ca.cer -keyfile ca.key
在签名时,如果报“The
stateOrProvinceName field needed to be the same in the CA certificate”,是因为在openssl.cnf中的policy_match里面 的前三个都选了match,修改成
stateOrProvinceName = optional
organizationName = optional
就可以了
相关文章推荐
- openssl 验证证书是否是某个CA证书签发
- 用openssl实现自建CA证书服务器
- openssl 验证证书是否是某个CA证书签发
- OpenSSL自建CA证书的过程及为通信方生成签名证明的步骤
- 使用OpenSSL做RSA签名验证 支付宝移动快捷支付 的服务器异步通知
- 使用Openssl验证证书链(转)
- 加密、解密;openssl自建CA
- Openssl Crypto 加/解密功能封装之二:MD5 摘要生成与验证
- Openssl验证PKCS7签名是否有效
- OpenSSL证书创建、验证及加解密过程总结
- 加密解密、Openssl、自建CA
- 【Todo】Kerberos、OpenSSL、OAuth2.0等一系列验证权限安全相关学习
- OpenSSL命令行工具验证数字签名
- OPENSSL X509证书验证
- openssl dgst(生成和验证数字签名)
- openssl命令生成CA证书
- openssl在java端的加解密和签名验证
- Openssl生成CA证书及服务器签名证书
- 巧用OpenSSL完成md2、md4、md5、rmd160、sha、sha1等的验证
- 使用OpenSSL自建CA及颁发证书、吊销证书