CA證書的配置
Ubuntu上CA證書的配置可以通過工具ca-certificates來方便的進行。該工具默認是隨Ubuntu安裝的,如果沒有可以通過下面的命令來安裝:
sudo apt-get install ca-certificates
需要安裝CA證書我們只需要將其放在”/usr/share/ca-certificates”目錄或其子目錄下,ca-certificates工具就能自動掃描到。為了不與其它根證書混淆,我們創建一個子目錄名為”extra”:
sudo mkdir /usr/share/ca-certificates/extra
然后將待安裝的證書拷貝到剛剛創建的目錄下:
sudo cp CASHLibCACert.crt /usr/share/ca-certificates/extra/CASHLibCACert.crt
(注意這里的證書是.crt的擴展名)
接下來讓ca-certificates工具幫我們安裝CA證書:
sudo dpkg-reconfigure ca-certificates
選擇”Yes”,我們能看到待安裝的CA證書已經被掃描到了,選中它(點空格鍵)然后選”OK”就行了。
看到這樣的消息就說明CA證書已經安裝成功了
那么安裝的CA證書在哪里呢,Ubuntu把所有的證書都放在”/etc/ssl/certs”目錄下,包括CA證書和普通的證書。來看看剛剛安裝好的證書:
CASHLibCACert.pem就是CA證書。 我們安裝的時候證書擴展名是.crt,安裝后擴展名變為了.pem。這兩者的內容其實是一樣的。CASHLibCACert.pem就是CA證書。 我們安裝的時候證書擴展名是.crt,安裝后擴展名變為了.pem。.crt證書是按base64編碼的,如果.pem也采用base64編碼,那么這兩者是可以通用的。在本例中,CA證書的內容在安裝前后沒有變化。
普通證書的配置
普通證書是指除CA之外的證書,真正用來做身份認證或簽名的證書。相對而言,CA證書用來驗證普通證書的可信性。
普通證書沒有特別的安裝步驟,放在任意可以訪問的目錄下就可以了。當然也可以拷貝到Ubuntu的證書目錄下,跟剛剛安裝的CA證書在同一目錄——”/etc/ssl/certs”
證書的使用
以Python代碼為例,測試采用TLS協議的SSL連接:
import socket,ssl,pprint
addr=('10.175.13.159', 56001)
s =socket.socket(socket.AF_INET, socket.SOCK_STREAM)
s.connect(addr)
#cert_file="/home/guagua/Documents/CASHLibClient.pem"
cert_file="/etc/ssl/certs/CASHLibClient.pem"
ssl_sock=ssl.wrap_socket(s,certfile=cert_file,ca_certs="/etc/ssl/certs/CASHLibCACert.pem"
,cert_reqs=ssl.CERT_REQUIRED,ssl_version=ssl.PROTOCOL_TLSv1)
peername = ssl_sock.getpeername()
print peername