前言
最近項目的Restful接口開發(fā)的差不多了描融,要支持https請求银酗,那就需要一個SSL證書草姻,準備去狗爹上看看有沒有便宜點的跟匆,自己買個試試∷呱裕看了一眼(如下圖)赶熟,還是應(yīng)該自己動手豐衣足食茫负。
基礎(chǔ)知識
-
SSL
SSL證書也叫安全證書或者數(shù)字證書破停,SSL證書是數(shù)字證書的一種翅楼,跟駕駛證、護照真慢、營業(yè)執(zhí)照電子副本類似毅臊。SSL證書是一種國際通用的Web安全標準,主要通過對敏感數(shù)據(jù)加密來防止各種攻擊非法讀取重要信息黑界,保證數(shù)據(jù)的完整性和安全性褂微,避免受到數(shù)據(jù)劫持和釣魚攻擊等。
-
HTTPS
HTTPS (全稱:Hyper Text Transfer Protocol over SecureSocket Layer)园爷,是以安全為目標的 HTTP 通道,在HTTP的基礎(chǔ)上通過傳輸加密和身份認證保證了傳輸過程的安全性 式撼。HTTPS 在HTTP 的基礎(chǔ)下加入SSL 層童社,HTTPS 的安全基礎(chǔ)是 SSL,因此加密的詳細內(nèi)容就需要 SSL著隆。
-
CA機構(gòu)頒發(fā)SSL證書
CA(Certificate Authority)就是電子認證的意思扰楼。權(quán)威可靠的CA機構(gòu)有挺多的,比如國外的有:Comodo美浦、RapidSSL弦赖、GeoTrust,國內(nèi)的有:CFCA(中國人民銀行聯(lián)合12家銀行建立的金融CFCA安全認證中zhi心)浦辨、CTCA(中國電信認證中心)
CA機構(gòu)頒發(fā)SSL證書是受信任的SSL證書蹬竖,會被瀏覽器信任認可,安全加密服務(wù)與安全掃描相關(guān)CA配套服務(wù)。 -
自簽名SSL證書
自己生成的SSL證書币厕,不是CA機構(gòu)頒發(fā)的SSL證書列另,就是自簽名證書。自簽名SSL證書不會被瀏覽器信任旦装,數(shù)據(jù)被泄漏級劫持安全漏洞安全風險較高页衙。可以在PC上安裝自簽名SSL證書對應(yīng)的公鑰證書阴绢,使瀏覽器信任認可店乐。
自簽名的SSL證書也存在一些安全隱患:
最容易受到SSL中間人攻擊
支持非常不安全的SSL V2.0協(xié)議
使用不安全的1024位非對稱密鑰對
-
cer證書和pfx證書:
項目的入口網(wǎng)關(guān)需要一張pfx證書,pfx證書同時包含了公鑰信息和私鑰信息呻袭。cer證書只包含公鑰信息眨八,提供給客戶端使用。
openssl生成自簽名證書
Linux系統(tǒng)自帶openssl棒妨,可以登錄任意Linux系統(tǒng)的機器操作踪古。
主要步驟如下:
第一步:生成RSA私鑰
openssl genrsa -des3 -out private-rsa.key 1024
- -des3:生成的密鑰使用des3方式進行加密。
- -out private-rsa.key:將生成的私鑰保存至private-rsa.key文件券腔。
- 1024為要生成的私鑰的長度伏穆。
執(zhí)行命令后,需要輸入保護私鑰文件的密碼(輸入密碼即可纷纫,一般不超過6位)
openssl req -new -x509 -key private-rsa.key -days 3650 -out public-rsa.cer
- -new :說明生成證書請求文件
- -x509 :說明生成自簽名證書
- -key :指定已有的秘鑰文件生成秘鑰請求枕扫,只與生成證書請求選項-new配合。
- -days:證書有效天數(shù)
- -out :-out 指定生成的證書請求或者自簽名證書名稱
執(zhí)行命令后辱魁,需要輸入證書的相關(guān)信息烟瞧。
有兩點需要注意
- 第一個標紅處輸入上一步保護私鑰文件的密碼
- 第二個標紅處一定要輸入使用pfx證書的服務(wù)器的IP
openssl pkcs12 -export -name test-alias -in public-rsa.cer -inkey private-rsa.key -out user-rsa.pfx
- -export:指定了一個PKCS#12文件將會被創(chuàng)建。
- -name:指定證書的名稱染簇。
- -in:指定公鑰和證書讀取的文件参滴。
- -inkey:指定私鑰文件的位置。
- -out:指定輸出的pkcs12文件
執(zhí)行命令后锻弓,需要輸入第一步保護私鑰文件的密碼以及導出密碼砾赔。
第四步:使用證書
至此,就會在當前目錄下生成了三個證書文件青灼,pfx證書上傳到需要使用證書的服務(wù)器上使用暴心,公鑰證書交給客戶端使用。