openssl 创建ca&生成证书

1.首先要生成服务器端的私钥(key文件):
openssl genrsa -des3 -out server.key 1024
运行时会提示输入密码,此密码用于加密key文件(参数des3便是指加密算法),以后每当需读取此文件,输入密码后还要确认一下,输两遍。

去除key文件口令的命令:
openssl rsa -in server.key -out server.key

2.openssl req -new -key server.key -out server.csr -config openssl.cnf
生成Certificate Signing Request(CSR),生成的csr文件交给CA签名后形成服务端自己的证书.
这个地方有可能会报错。

这个错误就是说openssl.cnf文件找不到。那这个文件在哪里呢?这是openssl的配置文件,在apps目录下,例如我的就是D:\openssl-0.9.8x\apps里面。找到它。复制,粘贴到out32dll这个文件夹里面去!!~~

好了,重新把这个命令运行一下,ok了,屏幕会提示一步一步输入个人信息。例如国家啊省啊城市啊单位啊个人名字啊邮件地址啊之类的。

3.对客户端也作同样的命令生成key及csr文件:
openssl genrsa -des3 -out client.key 1024
openssl req -new -key client.key -out client.csr -config openssl.cnf

4.CSR文件必须有CA的签名才可形成证书.可将此文件发送到verisign等地方由它验证,要交一大笔钱,何不自己做CA呢.
openssl req -new -x509 -keyout ca.key -out ca.crt -config openssl.cnf


5.用生成的CA的证书为刚才生成的server.csr,client.csr文件签名:
Openssl ca -in server.csr -out server.crt -cert ca.crt -keyfile ca.key -config openssl.cnf
Openssl ca -in client.csr -out client.crt -cert ca.crt -keyfile ca.key -config openssl.cnf

这里又可能出错:

I am unable to access the ./demoCA/newcerts directory~~~
先声明下,这个demoCA文件夹是在apps这个文件夹的目录下。
搜了google很多天,网上广为流传的一种方法是:
for linux:
mkdir demoCA
mkdir demoCA/newcerts
mkdir demoCA/private
touch demoCA/index.txt
echo "01" >> demoCA/serial

for windows:照着上面那个命令自己手动建嘛···
但是为啥俺都建了,还是有这个错误呢???

仍然unable to access the ./demoCA/newcerts directory~~~

网上流传着还有一个做法:
是在apps文件夹中有个CA.pl文件然后 perl CA.pl -newca 一下,我试了,没什么反映!囧

我把demoCA这个文件夹从apps下面拷到out32dll下面,也没用。


解决办法:
修改openssl的配置文件openssl.cnf:
首先程序-附件-打开notepad,把openssl.cnf拖进去,就可以查看这个文件了。
修改这个地方:
[ CA_default ]

dir        =\\demoCA        # Where everything is kept——————>这个地方修改目录为你的demoCA文件夹所在的地方,填入路径。比如我的就是:D:\\openssl-0.9.8x\\demoCA(注意路径要用双斜杠\\或者单反斜杠/)
certs        = $dir\\certs        # Where the issued certs are kept
crl_dir        = $dir\\crl        # Where the issued crl are kept
database    = $dir\\index.txt    # database index file.
#unique_subject    = no            # Set to 'no' to allow creation of
# several ctificates with same subject.
new_certs_dir    = $dir\\newcerts        # default place for new certs.

certificate    = $dir\\cacert.pem     # The CA certificate
serial        = $dir\\serial         # The current serial number
crlnumber    = $dir\\crlnumber    # the current crl number
# must be commented out to leave a V1 CRL
crl        = $dir\\crl.pem         # The current CRL
private_key    = $dir\\private\\cakey.pem# The private key
RANDFILE    = $dir\\private\\.rand    #

最后查看out32dll这个文件,要用的文件就都在里面了。




完成!!!!!!!!!!!



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值