Openssl使用生成CA总结
2011-03-31 20:08
337 查看
最近要搭建strongswan环境,需要用到openssl来创建证书,着实费了一番功夫,总结一下。
一、环境:Ubuntu10.10
所有文件生成在当前目录。所有用到的文件在当前目录(除非迫不得已,比如index.txt和serial)。
二、分三步走
1、Generating a CA certificate生成CA证书(供大家用的,详解见第三步)
命令:
creates a 2048 bit RSA private key strongswanKey.pem and a self-signed CA certificate strongswanCert.pem with a validity of 4 years (1460 days).
生成一个Key,一个Cert,都是pem文件,要生成二进制DER格式的文件要用别的选项。
这一步问题不大。具体选项看README
2、Generating a host or user certificate生成自己的证书(每个人生成自己的)
命令:
generates a 1024 bit RSA private key hostKey.pem and a certificate request hostReq.pem which has to be signed by the CA.
这一步要和第一步中填的“组织名”等必须相同,建议除姓名邮箱这些之外,全和第一步一样(密码当然不用)。
只生成一个Key。
这一步问题也不大。
3、Now the certificate request can be signed by the CA with the command用第一步生成的CA证书加密第二步生成的证书
第一步生成的证书是供大家用的(大家用同一个),第二部生成的每个人单独生成一个。
这里问题就大了。先看README给出的命令:
openssl ca -in hostReq.pem -days 730 -out hostCert.pem -notext
问题是:openssl生成的每一个文件(如hostCert.pem、index.txt、serial等)以及需要的每一个文件(如hostReq.pem),默认都要在某几个文件夹下。它会去当前路径的那些文件夹里面找。但是那些文件夹是不存在的(它安装的时候不会建,也不会提示你都有哪些,你只能一个一个试,试到吐血。。。),而且它找不到也不会自己去建,即使加了sudo也不会。因此最简单的方法就是指定文件路径,实在不能指定了再去建。
总结命令如下:openssl ca -in ./hostReq.pem -days 730 -keyfile ./strongswanKey.pem -cert ./strongswanCert.pem -out hostCert.pem -outdir ./ -notext
要求:必须在当前目录下新建一个demoCA文件夹,其中新建一个空的index.txt(必须为空,每次执行前都要提前清空,最好:rm后touch一个)和一个serial文件,serial文件中放个数字(最好别是0,最好以0开头,比如01)。建议这两个文件的操作都在终端下进行,因为操作过程中有几次直接双击打开编辑openssl运行失败。
原因是openssl命令选项中没有指定index.txt和serial路径的选项。。。
index.txt就是记录数据库。serial就是读取其中的那个数字,生成个以这个数字为名字的pem文件,且数字每次自增1。
三、实在有够吐血。吐血。。吐血。。。
一、环境:Ubuntu10.10
所有文件生成在当前目录。所有用到的文件在当前目录(除非迫不得已,比如index.txt和serial)。
二、分三步走
1、Generating a CA certificate生成CA证书(供大家用的,详解见第三步)
命令:
openssl req -x509 -days 1460 -newkey rsa:2048 -keyout strongswanKey.pem -out strongswanCert.pem
creates a 2048 bit RSA private key strongswanKey.pem and a self-signed CA certificate strongswanCert.pem with a validity of 4 years (1460 days).
生成一个Key,一个Cert,都是pem文件,要生成二进制DER格式的文件要用别的选项。
这一步问题不大。具体选项看README
2、Generating a host or user certificate生成自己的证书(每个人生成自己的)
命令:
openssl req -newkey rsa:1024 -keyout hostKey.pem -out hostReq.pem
generates a 1024 bit RSA private key hostKey.pem and a certificate request hostReq.pem which has to be signed by the CA.
这一步要和第一步中填的“组织名”等必须相同,建议除姓名邮箱这些之外,全和第一步一样(密码当然不用)。
只生成一个Key。
这一步问题也不大。
3、Now the certificate request can be signed by the CA with the command用第一步生成的CA证书加密第二步生成的证书
第一步生成的证书是供大家用的(大家用同一个),第二部生成的每个人单独生成一个。
这里问题就大了。先看README给出的命令:
openssl ca -in hostReq.pem -days 730 -out hostCert.pem -notext
问题是:openssl生成的每一个文件(如hostCert.pem、index.txt、serial等)以及需要的每一个文件(如hostReq.pem),默认都要在某几个文件夹下。它会去当前路径的那些文件夹里面找。但是那些文件夹是不存在的(它安装的时候不会建,也不会提示你都有哪些,你只能一个一个试,试到吐血。。。),而且它找不到也不会自己去建,即使加了sudo也不会。因此最简单的方法就是指定文件路径,实在不能指定了再去建。
总结命令如下:openssl ca -in ./hostReq.pem -days 730 -keyfile ./strongswanKey.pem -cert ./strongswanCert.pem -out hostCert.pem -outdir ./ -notext
要求:必须在当前目录下新建一个demoCA文件夹,其中新建一个空的index.txt(必须为空,每次执行前都要提前清空,最好:rm后touch一个)和一个serial文件,serial文件中放个数字(最好别是0,最好以0开头,比如01)。建议这两个文件的操作都在终端下进行,因为操作过程中有几次直接双击打开编辑openssl运行失败。
原因是openssl命令选项中没有指定index.txt和serial路径的选项。。。
index.txt就是记录数据库。serial就是读取其中的那个数字,生成个以这个数字为名字的pem文件,且数字每次自增1。
三、实在有够吐血。吐血。。吐血。。。
相关文章推荐
- 用openssl生成SSL使用的私钥和证书,并自己做CA签名(转)
- 用openssl生成SSL使用的私钥和证书,并自己做CA签名
- 使用Openssl生成CA及签发证书方法
- 使用Openssl生成CA及签发证书方法
- (总结)使用tar与OpenSSL加密解密打包文件
- Linux下使用OpenSSL生成证书
- .NET 使用OpenSSL生成的pem文件做为RSA Key时的读取问题
- openssl生成私有CA过程
- 如何使用openssl生成RSA公钥和私钥对
- linux下使用openssl生成ssl证书
- java开发技术总结-----使用poi生成excel文件
- 如何使用OpenSSL工具生成根证书与应用证书
- 数字证书、CA及PKI,openssl使用
- RSA加密解密(直接使用openssl生成的公私钥)
- StatSVN插件使用方法总结-项目代码分析工具 工作量图表生成工具
- .NET使用OpenSSL生成的pem密钥文件(增加size为2048的密钥转换)
- itext5 生成pdf 使用总结
- 使用javah生成c/c++头文件误区总结
- java中Keytool的使用总结 生成key
- openssl证书生成和源码wince编译及其使用