安装Cygwin完整版
安装openssl
openssl/out32dll 为了方便本人把apps下的openssl.cnf也复制到了这个目录下来。文件名都是以本人使用的来说了:
1.首先要生成服务器端的私钥(key文件):
openssl genrsa -des3 -out server.key 1024
运行时会提示输入密码,此密码用于加密key文件(参数des3便是指加密算法,当然也可以选用其他你认为安全的算法.),以后每当需读取此文件(通过openssl提供的命令或API)都需输入口令.如果觉得不方便,也可以去除这个口令,但一定要采取其他的保护措施!
去除key文件口令的命令:
openssl rsa -in server.key -out server.key
2.
-----------------------------------------------------------------
注意:创建证书请确保公用名common name与用于访问该网站的 URL 匹配
-----------------------------------------------------------------
openssl req -new -key server.key -out server.csr -config openssl.cnf
生成Certificate Signing Request(CSR),生成的csr文件交给CA签名后形成服务端自己的证书.屏幕上将有提示,依照其指示一步一步输入要求的个人信息即可.
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 -days 1095
=======================================================================================================
直接执行下面 5.
注意: 此时会出错:Using configuration from /usr/share/ssl/openssl.cnf I am unable to access the ./demoCA/newcerts directory ./demoCA/newcerts: No such file or directory
解决方法:
mkdir -p ./demoCA/newcerts
touch demoCA/index.txt
touch demoCA/serial
echo 01 > demoCA/serial
注意: 此时会出错:TXT_DB error number 2
造成错误的原因是该用户的证书已经被签署过,在ca中心的TXT_DB中已经存在,重新签署时出现update database 错误。
如果该用户的证书确实被丢失需要重新签发,那么修改的方法是,编辑 /home/globus/.globus/simpleCA/index.txt 文件,找到与待签署的certificate subject (Subject’s Distinguished Name) 相同的那一行,删除之即可。
=======================================================================================================
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
现在我们所需的全部文件便生成了.
另:
client使用的文件有:ca.crt,client.crt,client.key
server使用的文件有:ca.crt,server.crt,server.key
.crt文件和.key可以合到一个文件里面,本人把2个文件合成了一个.pem文件(直接拷贝过去就行了)
6.合并证书文件(crt)和私钥文件(key)
cat server.crt server.key > server.pem
cat client.crt client.key > client.pem
7.合并成pfx证书
1).
openssl pkcs12 -export -clcerts -in server.crt -inkey server.key -out server.pfx
2).
openssl pkcs12 -export -clcerts -in client.crt -inkey client.key -out client.pfx
8.文本化证书
1).openssl pkcs12 -in client.p12 -out client.txt
2).openssl pkcs12 -in server.p12 -out server.txt
9.屏幕模式显式:(证书、私钥、公钥)
1).openssl x509 -in client.crt -noout -text -modulus
2).openssl rsa -in server.key -noout -text -modulus
3).openssl rsa -in server.pub -noout -text -modulus
10.得到DH
1).openssl dhparam -out dh1024.pem 1024