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。python
SSL協議提供的安全通道有如下三個特性:web
SSL證書依據功能和品牌不一樣分類有所不一樣,但SSL證書做爲國際通用的產品,最爲重要的即是產品兼容性(即證書根預埋技術),由於他解決了網民登陸網站的信任問題,網民能夠經過SSL證書輕鬆識別網站的真實身份。SSL證書分爲以下種類:算法
上述三種證書存在一些差異,這裏進行簡單敘述:瀏覽器
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
,其餘的選項可隨意。frontend
須要使用軟鏈接,不然會出錯,可在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 = ceph1 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 )
經過上述修改後就能夠正常操做。