您好,登錄后才能下訂單哦!
這篇文章主要為大家展示了“Ceph OpenSSL的示例分析”,內容簡而易懂,條理清晰,希望能夠幫助大家解決疑惑,下面讓小編帶領大家一起研究并學習一下“Ceph OpenSSL的示例分析”這篇文章吧。
SSL(Secure Sockets Layer 安全套接層),及其繼任者傳輸層安全(Transport Layer Security,TLS)是為網絡通信提供安全及數據完整性的一種安全協議。TLS與SSL在傳輸層對網絡連接進行加密。Secure Socket Layer,為Netscape所研發,用以保障在Internet上數據傳輸之安全,利用數據加密(Encryption)技術,可確保數據在網絡上之傳輸過程中不會被截取及竊聽。一般通用之規格為40 bit之安全標準,美國則已推出128 bit之更高安全標準,但限制出境。只要3.0版本以上之I.E.或Netscape瀏覽器即可支持SSL。
SSL協議提供的安全通道有以下三個特性:
機密性:SSL協議使用密鑰加密通信數據。
可靠性:服務器和客戶都會被認證,客戶的認證是可選的。
完整性:SSL協議會對傳送的數據進行完整性檢查。
SSL證書依據功能和品牌不同分類有所不同,但SSL證書作為國際通用的產品,最為重要的便是產品兼容性(即證書根預埋技術),因為他解決了網民登錄網站的信任問題,網民可以通過SSL證書輕松識別網站的真實身份。SSL證書分為如下種類:
擴展驗證型(EV)SSL證書
組織驗證型(OV)SSL證書
域名驗證型(DV)SSL證書
上述三種證書存在一些差別,這里進行簡單敘述:
DV和OV型證書最大的差別是:DV型證書不包含企業名稱信息;而OV型證書包含企業名稱信息。
OV型和EV型證書,都包含了企業名稱等信息,但EV證書因為其采用了更加嚴格的認證標準,瀏覽器對EV證書更加“信任”,當瀏覽器訪問到EV證書時,可以在地址欄顯示出公司名稱,并將地址欄變成綠色。
三種SSL證書的價格一般按照EV,OV,DV逐個遞減。
HTTPS(Hypertext Transfer Protocol Secure)安全超文本傳輸協議。它是由Netscape開發并內置于其瀏覽器中,用于對數據進行壓縮和解壓操作,并返回網絡上傳送回的結果。HTTPS實際上應用了Netscape的完全套接字層(SSL)作為HTTP應用層的子層。(HTTPS使用端口443,而不是象HTTP那樣使用端口80來和TCP/IP進行通信。)SSL使用40 位關鍵字作為RC4流加密算法,這對于商業信息的加密是合適的。https是以安全為目標的HTTP通道,簡單講是HTTP的安全版。即HTTP下加入SSL層,https的安全基礎是SSL。
操作前需要創建桶bucket1,并將權限設置成公開訪問,為了驗證的直觀性,建議同時上傳多個對象,如obj1,obj2...并且將對象的權限也設置成公開訪問,這樣便于后續采用瀏覽器進行訪問。
首先需要利用openssl生成根證書,以后的服務器端證書或者客戶端證書都用他來簽發,可以建立多個根證書,就像對應不同的公司一樣。
#生成根證書的私鑰,參數des3是加密算法 openssl genrsa -des3 -out server.key 1024 #生成服務器端證書簽名請求文件(csr文件),利用私鑰生成一個根證書的申請,一般證書的申請格式都是csr。所以私鑰和csr一般需要保存好 openssl req -new -key server.key -out server.csr cp server.key server.key.orig #去除密鑰文件的保護密碼,每次讀取key文件時可以不需要口令 openssl rsa -in server.key.orig -out server.key #自簽名,有效期10年 openssl x509 -req -days 3650 -in server.csr -signkey server.key -out server.crt cp server.crt server.pem cat server.key >> server.pem
注:在做第二步時,存在common name(CN)選項的設置,為了與AWS S3的域名訪問規則一致,可以設置成
*.exampletest.com
,其他的選項可隨意。
需要使用軟連接,否則會出錯,可在log文件中查看出錯信息。
ln -s /lib64/libssl.so.1.0.1e /usr/lib64/libssl.so ln -s /lib64/libcrypto.so.1.0.1e /usr/lib64/libcrypto.so
這里需要在ceph.conf
文件中配置rgw_dns_name
和rgw_frontends
兩個參數信息。
[client.rgw.rgw1] host = ceph2 rgw_dns_name = exampletest.com rgw_frontends = "civetweb port=443s ssl_certificate=/etc/ceph/private/server.pem"
注:在
rgw_frontends
參數中需要配置3.1節中生成的ssl證書server.pem的路徑。
在rgw實例所在的主機的etc/hosts
下加入以下域名映射:
192.168.141.142 bucket1.exampletest.com
在用瀏覽器訪問的主機的hosts文件下添加:
192.168.141.142 bucket1.exampletest.com
下面對網站的訪問以IE瀏覽器為例
無證書訪問
瀏覽器中直接輸入網址https://bucket1.exampletest.com,可以正確訪問,并且列出桶bucket1中內容,但是地址欄會提示證書錯誤的字樣,這是由于未導入證書所致。
有證書訪問
首先導入證書。
瀏覽器地址欄輸入網址https://bucket1.exampletest.com 時會出現鎖形標志,表示安全訪問鏈接,并且能夠正確列出桶bucket1中的內容。
為方便測試,這里的證書是自簽名的,不是機構頒發。所以在sdk中需要通過參數設置來繞過證書的檢查。這里以python
為例,將與使用http
訪問方式不同的兩處地方單獨做了說明,如下:
url = 'https://192.168.141.142' s3 = boto3.client('s3', verify=False, #只需要將此參數設置成False endpoint_url=url, aws_access_key_id=access_key, aws_secret_access_key=secret_key )
通過上述修改后就可以正常操作。
以上是“Ceph OpenSSL的示例分析”這篇文章的所有內容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內容對大家有所幫助,如果還想學習更多知識,歡迎關注億速云行業資訊頻道!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。