二
:
证书文件生成
除将程序编译成功外 , 还需生成必要的证书和私钥文件使双方能够成功验证对方 , 步骤如下 :
1. 首先要生成服务器端的私钥 (key 文件 ):
openssl genrsa -des3 -out server.key 1024
运行时会提示输入密码 , 此密码用于加密 key 文件 ( 参数 des3 便是指加密算法 , 当然也可以选用其他你认为安全的算法 .), 以后每当需读取此文 件 ( 通过 openssl 提供的命令或 API) 都需输入口令 . 如果觉得不方便 , 也可以去除这个口令 , 但一定要采取其他的保护措施 !
去除 key 文件口令的命令 :
openssl rsa -in server.key -out server.key
2.openssl req -new -key server.key -out server.csr
生成 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
4.CSR 文件必须有 CA 的签名才可形成证书 . 可将此文件发送到 verisign 等地方由它验证 , 要交一大笔钱 , 何不自己做 CA 呢 .
首先生成 CA 的 key 文件 :
openssl -des3 -out ca.key 1024
在生成 CA 自签名的证书 :
openssl req -new -x509 -key ca.key -out ca.crt
如果想让此证书有个期限 , 如一年 , 则加上 "-days 365".
(" 如果非要为这个证书加上一个期限 , 我情愿是 .. 一万年 ")
5. 用生成的 CA 的证书为刚才生成的 server.csr,client.csr 文件签名 :
可以用 openssl 中 CA 系列命令 , 但不是很好用 ( 也不是多难 , 唉 , 一言难尽 ), 一篇文章中推荐用 mod_ssl 中的 sign.sh 脚本 , 试了一下 , 确实方便了不 少 , 如果 ca.csr 存在的话 , 只需 :
./sigh.sh server.csr
./sign.sh client.csr
相应的证书便生成了 ( 后缀 .crt).
现在我们所需的全部文件便生成了 .
其实 openssl 中还附带了一个叫 CA.pl 的文件 ( 在安装目录中的 misc 子目录下 ), 可用其生成以上的文件 , 使用也比较方便 , 但此处就不作介绍了 .
除将程序编译成功外 , 还需生成必要的证书和私钥文件使双方能够成功验证对方 , 步骤如下 :
1. 首先要生成服务器端的私钥 (key 文件 ):
openssl genrsa -des3 -out server.key 1024
运行时会提示输入密码 , 此密码用于加密 key 文件 ( 参数 des3 便是指加密算法 , 当然也可以选用其他你认为安全的算法 .), 以后每当需读取此文 件 ( 通过 openssl 提供的命令或 API) 都需输入口令 . 如果觉得不方便 , 也可以去除这个口令 , 但一定要采取其他的保护措施 !
去除 key 文件口令的命令 :
openssl rsa -in server.key -out server.key
2.openssl req -new -key server.key -out server.csr
生成 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
4.CSR 文件必须有 CA 的签名才可形成证书 . 可将此文件发送到 verisign 等地方由它验证 , 要交一大笔钱 , 何不自己做 CA 呢 .
首先生成 CA 的 key 文件 :
openssl -des3 -out ca.key 1024
在生成 CA 自签名的证书 :
openssl req -new -x509 -key ca.key -out ca.crt
如果想让此证书有个期限 , 如一年 , 则加上 "-days 365".
(" 如果非要为这个证书加上一个期限 , 我情愿是 .. 一万年 ")
5. 用生成的 CA 的证书为刚才生成的 server.csr,client.csr 文件签名 :
可以用 openssl 中 CA 系列命令 , 但不是很好用 ( 也不是多难 , 唉 , 一言难尽 ), 一篇文章中推荐用 mod_ssl 中的 sign.sh 脚本 , 试了一下 , 确实方便了不 少 , 如果 ca.csr 存在的话 , 只需 :
./sigh.sh server.csr
./sign.sh client.csr
相应的证书便生成了 ( 后缀 .crt).
现在我们所需的全部文件便生成了 .
其实 openssl 中还附带了一个叫 CA.pl 的文件 ( 在安装目录中的 misc 子目录下 ), 可用其生成以上的文件 , 使用也比较方便 , 但此处就不作介绍了 .