用OpenSSL命令行生成证书文件html
1.首先要生成服务器端的私钥(key文件):java
openssl genrsa -des3 -out server.key 1024算法
运行时会提示输入密码,此密码用于加密key文件(参数des3即是指加密算法,固然也能够选用其余你认为安全的算法.),之后每当需读取此文件(经过openssl提供的命令或API)都需输入口令.若是以为不方便,也能够去除这个口令,但必定要采起其余的保护措施!apache
去除key文件口令的命令:安全
openssl rsa -in server.key -out server.key服务器
2.设置证书请求(csr文件)工具
openssl req -new -key server.key -out server.csr -config openssl.cnfui
生成Certificate Signing Request(CSR),生成的csr文件交给CA签名后造成服务端本身的证书.屏幕上将有提示,依照其指示一步一步输入要求的我的信息便可.加密
后面的-config 能够不加,也能够像“/etc/sbin/opensslcnf”加载路径。.net
而后须要输入下列信息:
Country Name: cn 两个字母的国家代号
State or Province Name: An Hui 省份名称
Locality Name: Bengbu 城市名称
Organization Name: Family Network 公司名称
Organizational Unit Name: Home 部门名称
Common Name: Chen Yang 你的姓名
Email Address: sunstorm@263.net Email地址
生成 ca.crt 文件,将文件属性改成400,并放在安全的地方
3.生成客户端的公钥:
openssl genrsa -des3 -out client.key 1024
openssl req -new -key client.key -out client.csr -config openssl.cnf
4.自签发CA签名。CSR文件必须有CA的签名才可造成证书.可将此文件发送到verisign等地方由它验证,要交一大笔钱。
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
client使用的文件有:ca.crt,client.crt,client.key
server使用的文件有:ca.crt,server.crt,server.key
大致步骤就是这些,也能够利用某些工具
有一个工具可使用:http://www.openssl.org/contrib/ssl.ca-0.1.tar.gz 步骤参见http://blog.csdn.net/cangzhubai/article/details/5214749
生成密钥也可用keytool,生成私钥文件(.key)和签名请求文件(.csr),openssl签发数字证书,网址http://www.blogjava.net/duanzhimin528/archive/2010/06/22/324182.html
如下是本身理解的,不对的请留言,我好改正。
简单点理解就是建立私钥,经过私钥生成证书请求文件,本身或机构认证,签署证书,拷贝到服务器配置文件中生效。
也能够服务器和客服端都认证,这就是某些密钥要生成两遍的缘由,这样更安全,有点像支付宝安全插件。
openssl是加密程序的集合体,
apache产生http,及网页的浏览,你也能够用mini-http及https
mod-ssl是apache的插件,可是独立发行,他里面有一个sign.sh,在phg.contrib目录中,对openssl生成的私钥进行加密,也可用openssl自带的一个CA.sh来签证书。
顺便说一句openssl仍是很强大的加密工具,相对密码学有深刻理解的能够好好看看源代码。
原本是解决mini-http安装后,为何不要输入密码就直接看到网页的问题,看了一天只弄清楚这个。mini-http问题求前辈指教。