- 相關推薦
用OPENSSL實現電子商務中的CA認證
摘要:本文主要介紹了使用公開源代碼的工具OpenSSL來完成數字證書的簽署,實現電子商務中的CA認證的過程。
關鍵詞:電子商務;OpenSSL;CA認證
1. 前言
作為電子商務的安全核心SSL協議在電子商務安全性方面扮演了重要的角色。本文就是從安全技術角度介紹了以公開源代碼的工具OpenSSL來實現電子商務中的安全認證過程。
2. SSL(Secure Socket Layer)協議及其主要技術
1996年由美國Netscape公司開發和倡導的SSL協議,它是目前安全電子商務交易中使用最多的協議之一,它被許多世界知名廠商的Intranet和Internet網絡產品所支持。
SSL應用在Client和Server間安全的Web HTTP通信,URL以https開始替代http,并使用443端口進行通信。它主要使用加密機制、數字簽名、數字摘要、身份認證、CA認證技術提供Client和Server之間的秘密性、完整性、認證性三種基本的安全服務。
3. 用OpenSSL工具實現安全認證
目前,國外主流的電子商務安全協議在核心密碼算法上都有出口限制,如只允許40位或56位的RC4和512位的RSA算法出口等。這樣的算法強度引進后無法滿足我國電子商務實際應用當中的安全需求。但是,完全自主定義和開發一套安全標準體系不是一蹴而就的事情,需要人、財、物的長期投入。
因此,如何對國外主流的電子商務安全協議的安全模塊進行改造,用國內先進的密碼算法替換其相應的安全強度不夠的算法,變為國產的強安全協議,這樣就能較好地提高我國電子商務安全技術水平。
在SSL未提供源代碼的情況下,由澳大利亞軟件工程師Eric Young與Tim Hudson聯合開發的OpenSSL恰好解決了這一難題。它不僅能實現SSL的所有功能,支持目前所有基于SSL V2/V3和TSL V1的應用軟件,而且由于源代碼公開和提供了各種加密算法,完全可以滿足國外安全協議引進后的本地化改造需求。
下面就用OpenSSL提供的強大功能在FreeBSD平臺下進行手工簽署證書的過程。
⑴ 先建立一個 CA 的證書,首先為 CA 創建一個 RSA 私用密鑰:
# OpenSSL genrsa -des3 -out ca.key 1024
該指令中genras表示生成RSA私有密鑰文件。
-des3表示用DES3加密該文件。
-out ca.key表示生成文件ca.key。
1024是我們的RSA key的長度。
生成server.key的時候會要你輸入一個密碼,這個密鑰用來保護你的ca.key文件,這樣即使人家偷走你的ca.key文件,也打不開,拿不到你的私有密鑰。
運行該指令后系統提示輸入 PEM pass phrase,也就是ca.key文件的加密密碼,這里設為12345678。
⑵ 用下列命令查看它的內容:
# OpenSSL rsa -noout -text -in ca.key
該指令中rsa表示對RSA私有密鑰的處理。
-noout表示不打印出key的編碼版本信息。
-text表示打印出私有密鑰的各個組成部分。
-in ca.key 表示對ca.key文件的處理
對RSA算法進行分析可以知道,RSA的私有密鑰其實就是三個數字,其中兩個是質數prime numbers。產生RSA私有密鑰的關鍵就是產生這兩個質數。還有一些其他的參數,引導著整個私有密鑰產生的過程。
⑶ 利用 CA 的 RSA 密鑰創建一個自簽署的 CA 證書
# OpenSSL req -new -x509 -days 365 -key ca.key -out ca.crt
該指令中req用來創建和處理CA證書,它還能夠建立自簽名證書,做Root CA。
-new 產生一個新的CSR, 它會要輸入創建證書請求CSR的一些必須的信息。
-x509 將產生自簽名的證書,一般用來做測試用,或者自己做個Root CA用。
-days 365 指定我們自己的CA給人家簽證書的有效期為365天。
-key ca.key指明我們的私有密鑰文件名為ca.key。
-out ca.crt指出輸出的文件名為ca.crt。
執行該指令時系統要求用戶輸入一些用戶的信息,如下所示:(框內為輸入的內容)
Using configuration from /etc/ssl/OpenSSL.cnf
Enter PEM pass phrase:12345678
You are about to be asked to enter information that will be incorporated
into your certificate request.
What you are about to enter is what is called a Distinguished Name or a DN.
There are quite a few fields but you can leave some blank
For some fields there will be a default value,
If you enter '.', the field will be left blank.
-----
Country Name (2 letter code) [AU]:CN (兩個字母的國家代號)
State or Province Name (full name) [Some-State]:JIANG SU (省份名稱)
Locality Name (eg, city) []:ZHANGJIAGANG (城市名稱)
Organization Name (eg, company) [Internet Widgits Pty Ltd]:FAMILY NETWORK (公司名稱)
Organizational Unit Name (eg, section) []:HOME (部門名稱)
Common Name (eg, YOUR name) []:TJL (你的姓名)
Email Address []:TJL@WX88.NET (
【用OPENSSL實現電子商務中的CA認證】相關文章:
談電子商務中的網絡安全治理08-25
淺談企業并購中的管理協同效應及其實現論文(精選5篇)04-29
發揮電子商務在物資供給企業中的作用研究06-04
都市頻道制作網的設計與實現05-29
淺論電子商務合同糾紛中管轄法院的確定05-03