數字證書nginx
數字證書是互聯網通信中標誌通信各方身份信息的一串數字,提供了一種在Internet上驗證通訊實體身份的方式,數字證書不是數字***,而是身份認證機構蓋在數字***上的一個章或印(或者說加在數字***上的一個簽名)。它是由權威機構——CA機構,又稱爲證書受權(Certificate Authority)中心發行的,人們能夠在網上用它來識別對方的身份。最簡單的證書包含一個公開密鑰、名稱以及證書受權中心的數字簽名。數字證書的一個重要的特徵就是隻在特定的時間段內有效。算法
數字證書裏存有不少數字和英文,當使用數字證書進行身份認證時,它將隨機生成128位的身份碼,每份數字證書都能生成相應但每次都不可能相同的數碼,從而保證數據傳輸的保密性,即至關於生成一個複雜的密碼。apache
數字證書綁定了公鑰及其持有者的真實身份,它相似於現實生活中的居民***,所不一樣的是數字證書再也不是紙質的證照,而是一段含有證書持有者身份信息並通過認證中心審覈簽發的電子數據,能夠更加方便靈活地運用在電子商務和電子政務中。api
數字證書可用於:發送安全電子郵件、訪問安全站點、網上證券交易、網上招標採購、網上辦公、網上保險、網上稅務、網上籤約和網上銀行等安全電子事務處理和安全電子交易活動。瀏覽器
數字證書能夠通俗的理解爲古代調用軍隊的虎符或令牌,將軍拿的部分是公鑰證書,皇帝是CA機構同時提供給調軍的大臣的是證書對應的私鑰信息。安全
CA機構服務器
CA機構,又稱爲證書授證(Certificate Authority)中心,做爲電子商務交易中受信任的第三方,承擔公鑰體系中公鑰的合法性檢驗的責任。CA中心爲每一個使用公開密鑰的用戶發放一個數字證書,數字證書的做用是證實證書中列出的用戶合法擁有證書中列出的公開密鑰。CA機構的數字簽名使得***者不能僞造和篡改證書。它負責產生、分配並管理全部參與網上交易的個體所需的數字證書,所以是安全電子交易的核心環節。因而可知,建設證書受權(CA)中心,是開拓和規範電子商務市場必不可少的一步。爲保證用戶之間在網上傳遞信息的安全性、真實性、可靠性、完整性和不可抵賴性,不只須要對用戶的身份真實性進行驗證,也須要有一個具備權威性、公正性、惟一性的機構,負責向電子商務的各個主體頒發並管理符合國內、國際安全電子交易協議標準的電子商務安全證書。網絡
WebTrust是由全球兩大著名註冊會計師協會AICPA(美國註冊會計師協會)和CICA(加拿大註冊會計師協會)共同制定的安全審計標準,主要對互聯網服務商的系統及業務運做邏輯安全性、保密性等共計七項內容進行近乎嚴苛的審查和鑑證。dom
只有經過WebTrust國際安全審計認證,根證書才能預置到主流的瀏覽器而成爲一個全球可信的認證機構(CA)。
根證書安裝到操做系統或瀏覽器中,瀏覽器將默認信任該根證書籤名的全部子簽名證書,這也是中國鐵道部,CNNIC,alibaba經過誘導用戶安裝根證書的最終目的,這樣全部經這些非權威CA機構簽名的證書(軟件和網站)就能夠毫無阻礙的在你的電腦上運行。ide
證書籤發過程
CSR是Cerificate Signing Request的英文縮寫,即證書請求文件,也就是證書申請者在申請數字證書時生成私鑰的同時也生成證書請求文件,證書申請者只要把CSR文件提交給證書頒發機構後,證書頒發機構CA使用其根證書私鑰簽名就生成了證書公鑰文件,也就是頒發給用戶的證書。
數字證書頒發過程通常爲:
用戶首先產生本身的密鑰對,並將公共密鑰及部分我的身份信息(CSR)傳送給認證中心(CA)。認證中心在覈實身份後,將執行一些必要的步驟,以確信請求確實由用戶發送而來,而後,認證中心將發給用戶一個數字證書,該證書內包含用戶的我的信息和他的公鑰信息,同時還附有認證中心的簽名信息。用戶就可使用本身的數字證書進行相關的各類活動。數字證書由獨立的證書發行機構發佈。數字證書各不相同,每種證書可提供不一樣級別的可信度。能夠從證書發行機構得到您本身的數字證書。
工做原理
數字證書採用公鑰體制,即利用一對互相匹配的密鑰進行加密、解密。每一個用戶本身設定一把特定的僅爲本人所知的私有密鑰(私鑰),用它進行解密和簽名;同時設定一把公共密鑰(公鑰)並由本人公開,爲一組用戶所共享,用於加密和驗證簽名。當發送一份保密文件時,發送方使用接收方的公鑰對數據加密,而接收方則使用本身的私鑰解密,這樣信息就能夠安全無誤地到達目的地了。經過數字的手段保證加密過程是一個不可逆過程,即只有用私有密鑰才能解密。在公開密鑰密碼體制中,經常使用的一種是RSA體制。其數學原理是將一個大數分解成兩個質數的乘積,加密和解密用的是兩個不一樣的密鑰。即便已知明文、密文和加密密鑰(公開密鑰),想要推導出解密密鑰(私密密鑰),在計算上是不可能的。按當下計算機技術水平,要破解1024位RSA密鑰,須要上千年的計算時間。公開密鑰技術解決了密鑰發佈的管理問題,商戶能夠公開其公開密鑰,而保留其私有密鑰。購物者能夠用人人皆知的公開密鑰對發送的信息進行加密,安全地傳送給商戶,而後由商戶用本身的私有密鑰進行解密。
用戶也能夠採用本身的私鑰對信息加以處理,因爲密鑰僅爲本人全部,這樣就產生了別人沒法生成的文件,也就造成了數字簽名。採用數字簽名,可以確認如下兩點:
保證信息是由簽名者本身簽名發送的,簽名者不可否認或難以否定。
保證信息自簽發後到收到爲止不曾做過任何修改,簽發的文件是真實文件。
數字簽名
將報文按雙方約定的HASH算法計算獲得一個固定位數的報文摘要。在數學上保證:只要改動報文中任何一位,從新計算出的報文摘要值就會與原先的值不相符。這樣就保證了報文的不可更改性。
將該報文摘要值用發送者的私人密鑰加密(對明文進行解密徹底沒問題,會得出一個不可讀的「明文」),而後連同原報文一塊兒發送給接收者,而「加密」後的報文即稱數字簽名。
接收方收到數字簽名後,用一樣的HASH算法對原報文計算出報文摘要值,而後與用發送者的公開密鑰對數字簽名進行解密(原先已經把簽名加密了,再解密就能還原)獲得的報文摘要值相比較。如相等則說明報文確實來自所稱的發送者。
(因爲只有擁有私鑰的簽名者能經過「解密」摘要生成簽名,所以具備安全和不可抵賴性。)
那爲何是對報文摘要進行加密,而不是對原報文進行加密呢?這是由於RSA加解密很是耗時,被加密的報文越大,耗得時間越多,所以聰明的人類對其摘要進行加密,(由於報文摘要是要比原報文小得多),仍然可以起到一樣的做用。這就是爲何多了個報文摘要。
證書分類
基於數字證書的應用角度分類,數字證書能夠分爲如下幾種:
服務器證書
服務器證書被安裝於服務器設備上,用來證實服務器的身份和進行通訊加密。服務器證書能夠用來防止欺詐釣魚站點。
在服務器上安裝服務器證書後,客戶端瀏覽器能夠與服務器證書創建SSL鏈接,在SSL鏈接上傳輸的任何數據都會被加密。同時,瀏覽器會自動驗證服務器證書是否有效,驗證所訪問的站點是不是假冒站點,服務器證書保護的站點多被用來進行密碼登陸、訂單處理、網上銀行交易等。全球知名的服務器證書品牌有GlobalSign,Verisign,Thawte,Geotrust等。
SSL證書主要用於服務器(應用)的數據傳輸鏈路加密和身份認證,綁定網站域名,不一樣的產品對於不一樣價值的數據和要求不一樣的身份認證。
最新的高端SSL證書產品是擴展驗證(EV)SSL證書。在IE7.0、FireFox3.0、Opera 9.5等新一代高安全瀏覽器下,使用擴展驗證VeriSign(EV)SSL證書的網站的瀏覽器地址欄會自動呈現綠色,從而清晰地告訴用戶正在訪問的網站是通過嚴格認證的。
SSL證書還有企業型SSL證書(OVSSL) 及域名型證書(DVSSL)。
電子郵件證書
電子郵件證書能夠用來證實電子郵件發件人的真實性。它並不證實數字證書上面CN一項所標識的證書全部者姓名的真實性,它只證實郵件地址的真實性。
收到具備有效電子簽名的電子郵件,咱們除了能相信郵件確實由指定郵箱發出外,還能夠確信該郵件從被髮出後沒有被篡改過。
另外,使用接收的郵件證書,咱們還能夠向接收方發送加密郵件。該加密郵件能夠在非安全網絡傳輸,只有接收方的持有者纔可能打開該郵件。
我的證書
客戶端證書主要被用來進行身份驗證和電子簽名。
安全的客戶端證書被存儲於專用的usbkey中。存儲於key中的證書不能被導出或複製,且key使用時須要輸入key的保護密碼。使用該證書須要物理上得到其存儲介質usbkey,且須要知道key的保護密碼,這也被稱爲雙因子認證。這種認證手段是目前在internet最安全的身份認證手段之一。key的種類有多種,指紋識別、第三鍵確認,語音報讀,以及帶顯示屏的專用usbkey和普通usbkey等。
數字證書在廣義上可分爲:我的數字證書、單位數字證書、單位員工數字證書、服務器證書、×××證書、WAP證書、代碼簽名證書和表單簽名證書。
代碼簽名證書Code Signing SSL
代碼簽名證書Code Signing SSL爲軟件開發商提供了一個理想的解決方案,使得軟件開發商能對其軟件代碼進行數字簽名。經過對代碼的數字簽名來標識軟件來源以及軟件開發者的真實身份,保證代碼在簽名以後不被惡意篡改。使用戶在下載已經簽名的代碼時,可以有效的驗證該代碼的可信度。
使用代碼簽名證書的好處 開發商所發行的代碼程序或內容若經過代碼簽名驗證可提高軟件的下載、採用率和發行率。 減小代碼程序及內容出現錯誤訊息和安全性警告,創建品牌的信任關係。 防止使用者下載到含有惡意檔案的代碼程序及內容。 終端使用者透過互聯網和行動網絡下載、安裝代碼程序和內容時,由系統跳出開發者的信息,大幅提升安全性。 確保終端用戶知道該軟件是合法的,且該代碼自發行以來沒有被篡改過。 代碼簽名證書可消除 Internet Explorer 以及 Windows 操做系統中彈出的「不明發行商」。
擴展閱讀:
生成CSR文件時的常見問題
1.不要使用某些特殊字符
在申請服務器SSL證書時,不要使用某些特殊字符,不然在您提交CSR文件後,會出現"105"的錯誤代碼。這個錯誤是因爲在您生成CSR文件時,輸入的信息中包含一些特殊字符,如:(@,#,&,!,等等,例如:您能夠將"&"用"and"代替)。
公用名Common Name 是什麼?
2.保存好私鑰Key文件
要生成CSR文件,你必須爲服務器建立密鑰key。密鑰key和SSL證書是不可分開的,一旦丟失或損壞了公鑰、私鑰或密碼,從新生成密鑰key文件後,和原來的SSL證書就不匹配了,這時須要從新生成CSR文件.
apache相關配置:
SSLEngine on 啓用SSL功能
SSLCertificateFile 證書文件domain.crt
SSLCertificateKeyFile 私鑰文件domain.key
SSLCertificateChainFile 證書鏈文件 CA.crt
nginx相關配置:
listen 443 SSL訪問端口號爲443
ssl on 啓用SSL功能
ssl_certificate 證書文件yourdomain_server.crt
ssl_certificate_key 私鑰文件yourdomain_server.key
將證書按指定的目錄和文件名保存,並將密鑰文件也保存爲指定目錄下的文件名.
證書文件: httpd/conf/ssl.crt/server.crt (這個文件是證書頒發機構發回給你的證書文件。)
密鑰文件: httpd/conf/ssl.key/server.key
SSL證書申請流程
1.生成證書籤名請求CSR文件2. 將CSR文件和相關證實材料提交到CA機構或相關代理商,申請相關SSL證書3. SSL 證書頒發機構Comodo / RapidSSL / GeoTrust / Thawte / VeriSign / GlobalSign / AlphaSSL / Symantec / Trustwave接受到證書申請文件CSR 後,系統自動發送一封確認郵件到域名管理員郵箱,驗證域名全部人是否真實有效。4.經過域名公開信息驗證組織信息,經過人工驗證方式確認組織信息的真實性。5.頒發SSL證書 域名驗證DV SSL 證書通常在確認郵件完成後1-2個小時就能夠簽發相關SSL證書;企業驗證OV SSL 證書 / 加強驗證EV SSL 證書驗證時間會比較長,5-15個工做日,須要配合提交一些必要文件到證書機構,驗證完成後CA會發送 SSL證書到註冊郵箱。