用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問題求前輩指教。