在企业内部使用openssl创建私有CA
隨著計算機技術的發展,信息網絡技術的應用日益深入,這些應用改進了企業工作方式,提高了工作效率。而如何確保在網絡中傳輸的身份認證、機密性、完整性、合法性、不可抵賴性等問題成為企業進一步發展和推動企業信息化應用的關鍵。要解決這些問題,需要用到CA認證功能。而當企業的應用僅僅在企業內部實現時,我們只需要在企業內部自建CA服務器,完成認證功能,而無需采用第三方機構提供的CA,在總體上節省成本。
?
使用openssl可以實現企業內部自建CA,首先我們需要安裝openssl 軟件包,利用openssl創建CA服務器,其具體過程如下:
?
一、建立CA服務器:
1、生成密鑰,CA服務器自己的密鑰存放位置是/etc/pki/CA/private目錄下,我們將生成的私鑰文件保存在該目錄下,操作如下:
# cd /etc/pki/CA
# (umask 077;openssl genrsa -out /etc/pki/CA/private/cakey.pem 2048
?2、自簽證書?
# openssl req -new -x509 -key /etc/pki/CA/private/cakey.perm –out /etc/pki/CA/cacert.pem -days 3655
這樣在/etc/pki/CA目錄下可以看到cacerts證書生成了,用來驗證簽名,下發的證書每個都有簽名,當有客戶端申請該CA服務器簽發證書時,會將該CA服務器的證書信息置入為客戶端提供的證書中,其中也包含該CA服務器的公鑰信息,當多個其他節點相互通信時,各自證書中的CA服務器簽名信息,就可以用來驗證對方的身份,這樣我們的CA服務器就基本建立起來了。
??3、初始化工作環境
創建CA目錄下index.txt和serial兩個文件,index.txt是為其他客戶端簽署證書時記錄的索引信息,serial文件是用來標記簽署的證書的記錄序列號信息。
# touch /etc/pki/CA/{index.txt,serial},同時需要為serial文件指定證書簽署的其實數值,比如:
# echo 01 > /etc/pki/CA/serial
?
二、其他節點申請證書
(一)節點生成請求,假如這個節點是提供web服務的,我們將這個節點申請的證書保存在web服務的配置目錄中,比如/etc/httpd/ssl目錄中,步驟如下:
# cd /etc/httpd
# mkdir ssl
# cd ssl/
#? (umask 077;openssl genrsa -out /etc/httpd/ssl/httpd.key 2048);生成密鑰對兒
# openssl req -new -key /etc/httpd/ssl/httpd.key -out /etc/httpd/ssl/httpd.csr;生成證書簽署請求文件
請注意這里面生成的簽署請求文件是為了CA簽署以后其他節點確認自己的身份信息的,所以這里面的簽署步驟中主機信息要提供自己主機信息。這樣證書簽署請求文件就生成了,然后發送給CA服務器,由CA服務器來簽署之后再發送給客戶端即可,其中challenge password是指CA服務器簽署時需要使用的密碼,建議設置為空。
由于是在企業內使用私有CA,這個文件可以私用scp命令復制給CA服務器即可:# scp httpd.csr 192.168.0.130:/etc/pki/CA/csr
?
CA服務器簽署的方法,使用openssl的子命令ca來簽署,-in 選項指定讀入的文件 -out指定輸出簽署后的文件,同時還可以指定這個證書的使用期限,比如:# openssl? ca -in /etc/httpd/httpd.csr? -out /etc/httpd/httpd.crt -days 1000,而如果客戶端在生成簽署請求文件時,輸入的信息錯誤,那么CA服務器在簽署時會有如下的報錯信息,就會提示出有哪些地方與服務器的CA配置信息不符合而造成無法簽署的情況出現,如圖:
?這種情況下,我們就需要客戶端重新生成簽署請求文件,填寫正確后CA服務器就可以正常簽署了。如果客戶端請求的csr文件配置信息正確,那么CA服務器端在簽署時會有如下提示:
?輸入y就為客戶端簽署了證書,再將簽署后的證書文件發送給客戶端,這樣以后客戶端與其他節點通信時,它的身份信息就相當于由CA來做了公證而被認可,如果為多個客戶端都提供簽名數字證書后,企業內部的通信節點就可以基于自己的CA證書體系來通信了。
?
?
?
?
?
轉載于:https://blog.51cto.com/9164364/1534242
總結
以上是生活随笔為你收集整理的在企业内部使用openssl创建私有CA的全部內容,希望文章能夠幫你解決所遇到的問題。
 
                            
                        - 上一篇: 山东理工OJ【2121】数据结构实验之链
- 下一篇: MATLAB新手教程
