Cinder對(duì)接netapp存儲(chǔ)使用https協(xié)議時(shí),c-vol.log日志里會(huì)提示[SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed铝宵,這是因?yàn)閔ttps會(huì)做ssl認(rèn)證绸贡。對(duì)于這個(gè)問(wèn)題浩考,網(wǎng)絡(luò)上常見的解法是修改驅(qū)動(dòng)代碼了赌,繞過(guò)ssl:在文件 volume/drivers/netapp/dataontap/client/api.py 添加
import ssl
ssl._create_default_https_context = ssl._create_unverified_context
另外則是使用工具生成自簽名證書葛峻,導(dǎo)入到cinder服務(wù)器和netapp服務(wù)器上两波。Netapp現(xiàn)在能支持單向驗(yàn)證和雙向驗(yàn)證兩種模式滔蝉,用配置項(xiàng)可以控制击儡。
這里我們討論單向驗(yàn)證。步驟如下:
一蝠引、創(chuàng)建根證書CA
- 我們要用到easy-rsa工具阳谍。安裝指令:
Ubuntu:sudo apt-get –y install easy-rsa
Centos:sudo yum install easy-rsa - 進(jìn)入root模式:sudo –i
- [root@localhost ~]# cd /usr/share/easy-rsa/2.0/
- [root@localhost 2.0]# . vars
- *[root@localhost 2.0]# ./build-ca *
這一步按照提示輸入,全部回車使用默認(rèn)值即可螃概,但是Common Name要填寫netapp SVM的ip地址矫夯。如下:
Country Name (2 letter code) [US]:
State or Province Name (full name) [CA]:
Locality Name (eg, city) [SanFrancisco]:
Organization Name (eg, company) [Fort-Funston]:
Organizational Unit Name (eg, section) [MyOrganizationalUnit]:
Common Name (eg, your name or your server's hostname) [Fort-Funston CA]:172.24.3.25
Name [EasyRSA]:
Email Address [me@myhost.mydomain]:
- 生成Diffie-Hellman參數(shù)
[root@localhost 2.0]# ./build-dh
Generating DH parameters, 2048 bit long safe prime, generator 2
This is going to take a long time
..............................................................++*++*
二、創(chuàng)建SVM服務(wù)端證書和私鑰吊洼。Netapp上每個(gè)SVM都有對(duì)應(yīng)的證書训貌。Netapp應(yīng)該是根據(jù)我們登錄動(dòng)作用到的ip、用戶名來(lái)判斷要管理哪個(gè)svm冒窍,進(jìn)而使用哪個(gè)對(duì)應(yīng)的證書递沪。我們登錄netapp管理頁(yè)面,用到的用戶名admin是集群管理員综液,對(duì)應(yīng)netapp2650這個(gè)svm款慨,用到的證書就是是netapp2650的證書。
創(chuàng)建步驟如下:
- [root@localhost 2.0]# ./build-key-server 172.24.3.25
172.24.3.25是服務(wù)端ip谬莹。這一步按照提示輸入檩奠,全部回車使用默認(rèn)值即可,但是Common Name要填寫netapp主機(jī)的ip地址附帽。如下:
Country Name (2 letter code) [US]:
State or Province Name (full name) [CA]:
Locality Name (eg, city) [SanFrancisco]:
Organization Name (eg, company) [Fort-Funston]:
Organizational Unit Name (eg, section) [MyOrganizationalUnit]:
Common Name (eg, your name or your server's hostname) [172.24.3.25]:172.24.3.25
Name [EasyRSA]:
Email Address [me@myhost.mydomain]:
Please enter the following 'extra' attributes
to be sent with your certificate request
A challenge password []:
An optional company name []:
注意:這里可能會(huì)創(chuàng)建失敗提示failed to update database TXT_DB error number 2笆凌,這是因?yàn)橹耙呀?jīng)生成過(guò)同名的證書的了,可以執(zhí)行./clean-all清除士葫,然后從第一步再做一遍。
- 檢查keys目錄是否有172.24.3.25.crt送悔、172.24.3.25.key慢显、ca.crt三個(gè)文件。
172.24.3.25.crt是服務(wù)器證書欠啤,172.24.3.25.key是服務(wù)器私鑰荚藻,ca.crt是根證書。 - 補(bǔ)充:創(chuàng)建客戶端證書的指令洁段,使用單向驗(yàn)證的時(shí)候請(qǐng)?zhí)^(guò)此步驟应狱。
[root@localhost 2.0]# ./build-key 172.24.2.105
172.24.2.105是客戶端ip。
三祠丝、安裝根證書在cinder服務(wù)器上疾呻,并加入信任列表
- 要使用工具ca-certificates
Centos:sudo yum install ca-certificates
Ubuntu: - 把上面生成的ca.crt復(fù)制到目錄/etc/pki/ca-trust/source/anchors/
- 執(zhí)行指令 update-ca-trust 即安裝成功除嘹。這條指令不會(huì)打印執(zhí)行結(jié)果,我們可以查看/etc/pki/tls/certs/ca-bundle.crt這個(gè)文件里是否已經(jīng)添加了ca.crt的內(nèi)容岸蜗。
comm -1 /etc/pki/tls/certs/ca-bundle.crt /usr/share/easy-rsa/2.0/keys/ca.crt
備注:
comm 命令參數(shù)
-1 不顯示只在第1個(gè)文件里出現(xiàn)過(guò)的列尉咕。
-2 不顯示只在第2個(gè)文件里出現(xiàn)過(guò)的列。
-3 不顯示只在第1和第2個(gè)文件里出現(xiàn)過(guò)的列璃岳。
四年缎、將服務(wù)器證書、服務(wù)器私鑰和根證書導(dǎo)入到netapp svm
用admin用戶ssh連接到netapp集群管理的命令行界面上铃慷。
[root@localhost 2.0]# ssh admin@172.24.2.50查看svm的證書单芜。
NetApp2650::> security certificate show -vserver wy_fc_svm_test刪除svm的證書。
NetApp2650::> security certificate delete -vserver wy_fc_svm_test *導(dǎo)入證書
NetApp2650::> security certificate install -vserver wy_fc_svm_test -type server
提示Please enter Certificate: Press <Enter> when done犁柜,這里輸入之前生成的服務(wù)器證書172.24.3.25.crt里的內(nèi)容洲鸠,從-----BEGIN CERTIFICATE----- 到-----END CERTIFICATE-----。
如:
Please enter Private Key: Press <Enter> when done赁温,這里輸入之前生成的服務(wù)器私鑰172.24.3.25.key里的內(nèi)容坛怪,從-----BEGIN CERTIFICATE----- 到-----END CERTIFICATE-----。
如:
Do you want to continue entering root and/or intermediate certificates {y|n}: y
Please enter Intermediate Certificate: Press <Enter> when done
這里輸入根證書ca.crt里的內(nèi)容股囊。如下:
- 使導(dǎo)入證書生效
NetApp2650::> security ssl modify -vserver wy_fc_svm_test -server-enabled true -common-name 172.24.3.25 -ca 172.24.3.25 -serial 02
這里的-common-name袜匿、-ca、-serial可以敲擊tab按鍵自動(dòng)填入稚疹。
6.導(dǎo)入客戶端證書居灯,如使用單向驗(yàn)證,請(qǐng)忽略此步内狗。
NetApp2650::> security certificate install -vserver NetApp2650 -type client-ca
開啟客戶端驗(yàn)證怪嫌,使客戶端證書生效。
NetApp2650::> security ssl modify -client-enabled true -vserver NetApp2650 -common-name 172.24.2.50 -ca 172.24.2.50 -serial 01
五柳沙、使用openssl工具測(cè)試https岩灭,看證書是否導(dǎo)入成功。
[root@localhost ~]# openssl s_client -connect 172.24.3.25:443 -CApath /etc/pki/ca-trust/source/anchors/ca.crt
抓包分析tcpdump -s0 -w net4.pcap -i enp8s0f0 host 172.24.2.105
SSL雙向驗(yàn)證報(bào)文分析可以閱讀這篇博客http://blog.csdn.net/fw0124/article/details/40983787
NetApp CLI 指令簡(jiǎn)單補(bǔ)充
上面的操作步驟已經(jīng)介紹了幾個(gè)常用指令赂鲤,這里我再說(shuō)幾個(gè)相關(guān)知識(shí)噪径。
登錄Data ONTAP 命令行界面 (CLI) ,你可以使用命令行管理 Storage Virtual Machine (SVM)数初。命令行界面提供了與 UNIX tcsh Shell 相似的基于命令的管理機(jī)制找爱。您可在存儲(chǔ)系統(tǒng)提示符處輸入命令,而命令結(jié)果將以文本顯示泡孩。命令行界面的命令提示符顯示為vserver_name::>车摄。
- 命令行界面中的命令按命令目錄組織成層次結(jié)構(gòu)。您可以通過(guò)輸入完整命令在若干個(gè)命令目錄中導(dǎo)航。例如吮播,您可以通過(guò)在提示符處輸入volume show命令來(lái)顯示有關(guān)卷的信息变屁。您也可以一次瀏覽一個(gè)命令目錄來(lái)運(yùn)行命令,如:
- 問(wèn)號(hào)(“?”)用于顯示幫助信息的命令薄料。
如:
- 您可以使用top命令轉(zhuǎn)到命令層次結(jié)構(gòu)的頂級(jí)敞贡,以及使用up命令或..命令轉(zhuǎn)到命令層次結(jié)構(gòu)中的上一級(jí)。
- 每個(gè)命令行界面會(huì)話都會(huì)保留一份在會(huì)話期間發(fā)出的所有命令的歷史記錄摄职。使用history命令查看命令歷史記錄誊役。使用redo命令重新執(zhí)行命令,如可使用redo 4命令重新發(fā)出歷史記錄列表中的第四個(gè)命令谷市;使用redo -2命令重新發(fā)出在運(yùn)行兩個(gè)命令之前運(yùn)行的命令蛔垢。
- 查看有關(guān) SVM 的基本信息NetApp2650::> vserver show
查看有關(guān) SVM 的詳細(xì)信息NetApp2650::> vserver show -instance - 查看 SVM 的 LIF 用 network interface show
這里我僅僅簡(jiǎn)單介紹下netapp cli指令,其他詳細(xì)指令請(qǐng)查詢:
《集群模式 Data ONTAP 8.3 SVM 管理員系統(tǒng)管理指南》