目錄
創(chuàng)新互聯(lián)公司主營慶城網(wǎng)站建設(shè)的網(wǎng)絡(luò)公司,主營網(wǎng)站建設(shè)方案,成都App定制開發(fā),慶城h5微信小程序開發(fā)搭建,慶城網(wǎng)站營銷推廣歡迎慶城等地區(qū)企業(yè)咨詢1???? CA架構(gòu)說明
1.1????? 名詞說明
1.2????? 信任關(guān)系說明
2???? 證書在windows服務(wù)中的具體使用方式
3???? Openssl實(shí)現(xiàn)CA體系的操作方法
3.1????? 使用自簽名證書自建CA(在CA端操作)
3.2????? 在客戶端生成證書申請文件(在APP端操作)
3.3????? 在CA端頒發(fā)證書
3.4????? 具體案例測試
3.4.1?????? 環(huán)境介紹
3.4.2?????? Centos19安裝配置nginx
3.4.3?????? nginx使用自簽名啟用ssl認(rèn)證
3.4.4?????? 使用windows01訪問測試---預(yù)期效果證書不信任
3.4.5?????? windows01添加對自簽名證書的信任
3.4.6?????? 使用windows01訪問測試---預(yù)期效果證書信任
3.4.7?????? 在centos18上創(chuàng)建CA
3.4.8?????? 使用CA頒發(fā)證書并綁定到nginx
3.4.9?????? 使用windows01訪問測試---預(yù)期效果證書不信任
3.4.10???? windows01添加對CA(centos18)的信任
3.4.11???? 使用windows01訪問測試---預(yù)期效果證書信任
CA:證書頒發(fā)機(jī)構(gòu),類似與工商局,專門發(fā)放證書的機(jī)構(gòu),只有得到了CA頒發(fā)的證書應(yīng)用才能正常對外提供服務(wù)
公鑰:顧名思義,公共的秘鑰,安全性要求不高,可以共享出來給大家使用
私鑰:私有的秘鑰,只能自己使用,需要防止泄露
公鑰和秘鑰的關(guān)系:公鑰和秘鑰成對出現(xiàn),互相認(rèn)證,即我的公鑰加密的文件只能我的秘鑰解開,我的秘鑰加密的文件只能我的公鑰解開,每個(gè)個(gè)體(可以是用戶或者主機(jī))都可以擁有一對。
證書:采用公鑰秘鑰的特性生成的一種文件,由CA頒發(fā)出來的,類似于營業(yè)執(zhí)照
如上圖,APP可以是Web server或者其他的應(yīng)用程序,PC代指瀏覽APP所提供服務(wù)的設(shè)備包括電腦手機(jī)等設(shè)備。PC訪問APP時(shí)(ssl認(rèn)證)需要驗(yàn)證APP綁定的證書的真實(shí)性,而證書是由CA頒發(fā)的,此時(shí)PC只要信任CA即可,信任的方式為將CA的自簽名證書加入到電腦的“受信任的證書頒發(fā)機(jī)構(gòu)”??梢酝ㄟ^windows的控制臺或者IE瀏覽器中的設(shè)置查看電腦信任了哪些CA,如下查看方式
打開”internet選項(xiàng)”—“內(nèi)容”---“證書”---“受信任的根證書頒發(fā)機(jī)構(gòu)”可以看到微軟已經(jīng)幫我們信任好了一些公共的CA。
一般找這里面列出來的CA組織申請證書都是需要費(fèi)用的,所以大家經(jīng)常會在訪問網(wǎng)頁時(shí)會發(fā)現(xiàn)安全證書的警告,這個(gè)一般是組織內(nèi)部CA頒發(fā)的或者是自簽名證書。自簽名證書就是通過將CA與APP所在的服務(wù)器合二為一的方式實(shí)現(xiàn)的。
#上面的操作是windows系統(tǒng),如果是RedHat系統(tǒng)可以使用如下方式添加對CA的信任
cat [根證書文件] >> /etc/pki/tls/certs/ca-bundle.crt
由于作者前期是從事Windows運(yùn)維相關(guān)的工作,先簡單介紹一下CA在windows AD中的應(yīng)用。
在AD環(huán)境中一般會需要架設(shè)一臺CA供其他需要證書加密的服務(wù)使用,CA架設(shè)(集成AD架設(shè)的方式)完成之后域中的所有windows設(shè)備都會自動(dòng)信任該CA,域中的所有設(shè)備和所有用戶都可以向CA申請證書。申請證書的方式有兩種,一種是登錄CA提供的網(wǎng)頁申請,另一種如下:
“開始”---“運(yùn)行”---“輸入mmc回車”---“文件”---“添加刪除管理單元”---“證書”如下圖
可以使用用戶或者主機(jī)的名義去申請,這里選擇我的用戶賬戶
右鍵“個(gè)人”---“所有任務(wù)”---“申請新證書”點(diǎn)擊下一步
在這個(gè)界面需要在CA端定義了注冊策略之后,這里就會顯示注冊策略,選擇相應(yīng)的注冊策略之后申請就會被提交到CA,在CA端進(jìn)行證書頒發(fā)之后在證書這一列就會顯示出來證書了
這里就簡單的介紹了一下windows AD環(huán)境中的證書申請方法,如果CA是使用第三方工具如openssl等工具搭建的,具體的操作方法也可能會有一些差異
#創(chuàng)建私鑰
openssl genrsa -out cakey.pem 4096?
#使用上面的私鑰創(chuàng)建證書,這個(gè)證書被稱為根證書,一臺電腦將這個(gè)證書導(dǎo)入到“受信任的根證書頒發(fā)機(jī)構(gòu)”后就相當(dāng)于信任的這個(gè)CA
openssl req -new -x509 -key cakey.pem -out cacert.pem -days 3650
#生成私鑰
openssl genrsa -out app.key 4096
#生成證書申請文件,實(shí)際上是生成了一個(gè)自簽名證書,只是后面需要拿給CA簽名
openssl req -new -x509 -key app.key ?-out app.csr -days 3650
#將上一步生成的私鑰拷貝到CA端,執(zhí)行如下操作
openssl ca -in httpd.csr -out httpd.crt -days 3650
#證書生成完成后可以通過如下命令查看證書
Openssl x509 -in httpd.crt -noout -serial -subject
Centos18:CA
Centos19:運(yùn)行了nginx,并開啟ssl模塊,向CA申請證書
Windows01:做實(shí)驗(yàn)的windows電腦,命名為windows01
使用源碼安裝太麻煩,直接使用epel的yum源來安裝,如下yum源供參考,具體的安裝步驟就不多做介紹了
#創(chuàng)建私鑰
openssl genrsa -out httpd.key 1024?
#使用上面的私鑰創(chuàng)建證書
openssl req -new -x509 -key httpd.key -out httpd.crt -days 3650
將私鑰和證書的路徑填入/etc/nginx/nginx.conf中的如下字段,這些字段默認(rèn)是注釋掉的,需要去掉注釋
訪問https://centos19發(fā)現(xiàn)證書錯(cuò)誤
查看證書詳情可以看到是由centos19自己頒發(fā)的證書,并且不受信任
添加信任可以直接將3.4.3中生成的證書拷貝到windows01中進(jìn)行安裝,或者直接在網(wǎng)頁中查看證書時(shí)安裝(這種方式在有些情況下可能不適用)。下面介紹一下第二種方式
如圖查看證書,安裝證書---下一步
選擇存儲位置為“受信任的根證書頒發(fā)機(jī)構(gòu)”
安裝完成之后,就添加了對centos19的信任了
重新訪問網(wǎng)頁查看發(fā)現(xiàn)沒有報(bào)錯(cuò)了
創(chuàng)建所需的目錄和文件,這些文件目錄的配置都在/etc/pki/tls/openssl.conf中定義
然后按照3.1中的方法創(chuàng)建CA的私鑰和證書如下
#創(chuàng)建私鑰
openssl genrsa -out /etc/pki/CA/private/cakey.pem 4096?
#使用上面的私鑰創(chuàng)建證書,這個(gè)證書被稱為根證書,一臺電腦將這個(gè)證書導(dǎo)入到“受信任的根證書頒發(fā)機(jī)構(gòu)”后就相當(dāng)于信任的這個(gè)CA
openssl req -new -x509 -key /etc/pki/CA/private/cakey.pem -out /etc/pki/CA/cacert.pem -days 3650
#在centos19上生成私鑰
openssl genrsa -out httpd.key 4096
#在centos19上生成證書申請文件
openssl req -new -key httpd.key -out httpd.csr -days 3650
#編輯nginx配置文件/etc/nginx/nginx.conf,將新申請的私鑰和證書綁定到nginx
使配置生效
Nginx -s reload
訪問https://centos19發(fā)現(xiàn)證書不信任
查看證書發(fā)現(xiàn)證書是由centos18頒發(fā)給centos19的,證明是CA頒發(fā)的證書
將3.4.7中CA生成的自簽名證書文件cakey.pem拷貝到windows01上,但是需要將后綴名修改為crt,將這個(gè)證書文件導(dǎo)入到“受信任的根證書頒發(fā)機(jī)構(gòu)”
打開這個(gè)文件并導(dǎo)入,如下圖可以看出該根證書文件的確是由CA(centos18)頒發(fā)給自己的。
做完該操作之后就信任了CA了,以后CA頒發(fā)的所有證書都不用再單獨(dú)做信任關(guān)系了。
完成上一步操作之后,再次訪問頁面已經(jīng)沒有證書警告了
另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)scvps.cn,海內(nèi)外云服務(wù)器15元起步,三天無理由+7*72小時(shí)售后在線,公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國服務(wù)器、虛擬主機(jī)、免備案服務(wù)器”等云主機(jī)租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡單易用、服務(wù)可用性高、性價(jià)比高”等特點(diǎn)與優(yōu)勢,專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應(yīng)用場景需求。