用OpenSSL命令行生成證書文件
1.首先要生成服務器端的私鑰(key文件):
openssl genrsa -des3 -out server.key 1024
運行時會提示輸入密碼,此密碼用於加密key文件(參數des3便是指加密算法,當然也可以選用其他你認為安全的算法.),以后每當需讀取此文件(通過openssl提供的命令或API)都需輸入口令.如果覺得不方便,也可以去除這個口令,但一定要采取其他的保護措施!
去除key文件口令的命令:
openssl rsa -in server.key -out server.key
2.設置證書請求(csr文件)
openssl req -new -key server.key -out server.csr -config openssl.cnf
生成Certificate Signing Request(CSR),生成的csr文件交給CA簽名后形成服務端自己的證書.屏幕上將有提示,依照其指示一步一步輸入要求的個人信息即可.
后面的-config 可以不加,也可以像“/etc/sbin/opensslcnf”加載路徑。
然后需要輸入下列信息:
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問題求前輩指教。
