注意:本文中的命令僅適用於搭配 Isilon Cluster 使用。它不適用於外部 Linux 伺服器。
注意:Isilon 不會自動更新憑證。您必須在 Isilon 叢集中依照本文中的步驟手動續約。
簡介
本文說明如何更換或更新 Isilon Web 管理介面的安全通訊端層 (SSL) 憑證。下列程序包括完成自我簽署憑證更換或更新,或向憑證認證機構 (CA) 要求更換或續約 SSL 的選項。
必要工具或技能
若要完成此工作,您必須具有可存取 Isilon Web 管理介面的 URL。(本文中的範例使用
https://isilon.example.com:8080/
。)您也應能順利地從命令列執行命令。
先決條件
參考資訊
以下清單包括預設位置
server.crt
和
server.key
OneFS 7.0.x 和 OneFS 8.0.0 中的檔案。
十.在後續程序中,請更新步驟,使此資訊與安裝的 OneFS 版本相符。
OneFS 7.0.x 及更新版本
/usr/local/apache24/conf/ssl.crt/server.crt
/usr/local/apache24/conf/ssl.key/server.key
OneFS 8.0.1.x 及更新版本
- 執行下列命令,以取得憑證清單:
isi certificate server list
- 儲存原始憑證和金鑰的備份 (僅適用於 OneFS 7.0.x 至 8.0.0.x)。
- 在叢集的任何節點上開啟 SSH 連線,然後使用「root」帳戶登入。
- 執行下列命令以建立備份位置,並儲存原始金鑰和憑證:
mkdir -p /ifs/data/Isilon_Support/original_ssl_backup
cp /usr/local/apache24/conf/ssl.crt/server.crt /ifs/data/Isilon_Support/original_ssl_backup
cp /usr/local/apache24/conf/ssl.key/server.key /ifs/data/Isilon_Support/original_ssl_backup
程序
建立本機工作目錄。
mkdir /ifs/local
cd /ifs/local
確認您要續約現有憑證,或是要從頭開始建立憑證。
這會建立以現有 (庫存) 為基礎的續約憑證 ssl.key
。執行下列命令以建立為期兩年的憑證。增加或減少 -days 的值,以產生到期日期不同的憑證:
cp /usr/local/apache2/conf/ssl.key/server.key ./ ; openssl req -new -days 730 -nodes -x509 -key server.key -out server.crt
回答系統提示,以完成產生自我簽署 SSL 憑證的程序,輸入適合貴組織的資訊。
例如:
Country Name (2 letter code) [AU]:US
State or Province Name (full name) [Some-State]:Washington
Locality Name (eg, city) []:Seattle
Organization Name (eg, company) [Internet Widgits Pty Ltd]:Isilon
Organizational Unit Name (eg, section) []:Support
Common Name (e.g. server FQDN or YOUR name) []:isilon.example.com
Email Address []:support@example.com
輸入完資訊後, server.csr
和 server.key
檔案會顯示在 /ifs/local directory
。
openssl x509 -text -noout -in server.crt
在此步驟之後,請前往 將憑證新增至本文的叢集 區段。
此過程演示如何創建新的私鑰和 SSL 證書。執行下列命令以建立 RSA 2048-bit
私密金鑰:
openssl genrsa -out server.key 2048
建立憑證簽署要求:
openssl req -new -nodes -key server.key -out server.csr
輸入適用於貴組織的適當資訊。
Country Name (2 letter code) [AU]:
State or Province Name (full name) [Some-State]:
Locality Name (eg, city) []:
Organization Name (eg, company) [Internet Widgits Pty Ltd]:
Organizational Unit Name (eg, section) []:
Common Name (e.g. server FQDN or YOUR name) []:
Email Address []:
Please enter the following 'extra' attributes
to be sent with your certificate request
A challenge password []:
An optional company name []:
openssl req -new -nodes -key server.key -out server.csr -reqexts SAN -config <(cat /etc/ssl/openssl.cnf <(printf "[SAN]\nsubjectAltName=DNS:example.com"))
出現提示時,輸入要整合至憑證要求內的資訊。輸入完資訊後, server.csr
和 server.key
檔案會顯示在 /ifs/local directory
。
確認您要對憑證進行自我簽署,或讓認證機構 (CA) 簽署。
若要使用金鑰自行簽署憑證,請執行以下命令以建立新的自我簽署憑證,有效期限為 2 年:
openssl x509 -req -days 730 -in server.csr -signkey server.key -out server.crt
確認金鑰符合憑證,兩個命令應傳回相同的 md5 值:
openssl x509 -noout -modulus -in server.crt | openssl md5
openssl rsa -noout -modulus -in server.key | openssl md5
在此步驟之後,請前往 將憑證新增至本文的叢集 區段。
如果 CA 正在對證書進行簽名,請確保新的 SSL 證書採用 x509 格式,並包含整個證書信任鏈。
CA 通常會在單獨的檔中返回新的 SSL 證書、中間證書和根證書。
如果 CA 已完成此操作, 您必須手動 建立 PEM 格式的憑證。
建立 PEM 格式的憑證時順序問題。證書必須位於文件頂部,後跟中間證書,根證書必須位於底部。
以下是 PEM 格式檔案的外觀範例:
-----BEGIN CERTIFICATE-----
<The contents of your new TLS certificate>
-----END CERTIFICATE-----
-----BEGIN CERTIFICATE-----
<The contents of the intermediate certificate>
<Repeat as necessary for every intermediate certificate provided by your CA>
-----END CERTIFICATE-----
-----BEGIN CERTIFICATE-----
<The contents of the root certificate file>
-----END CERTIFICATE-----
從 CLI 建立 PEM 格式檔案的一種簡單方法是 cat 檔案 (請記住,檔案的順序很重要):
cat CA_signed.crt intermediate.crt root.crt > onefs_pem_formatted.crt
複製 onefs_pem_formatted.crt
檔案至 /ifs/local directory
並將其重新命名為 server.crt
。
注意:如果收到.cer檔,請將其重命名為 .crt 擴展名。
openssl x509 -text -noout -in server.crt
新增憑證至叢集:
若為 OneFS 7.0.x 至 8.0.1.x:
- 在每個節點上安裝新憑證和金鑰:
isi services -a isi_webui disable
chmod 640 server.key
chmod 640 server.crt
isi_for_array -s 'cp /ifs/local/server.key /usr/local/apache2/conf/ssl.key/server.key'
isi_for_array -s 'cp /ifs/local/server.crt /usr/local/apache2/conf/ssl.crt/server.crt'
isi services -a isi_webui enable
- 如果憑證已過期或未使用,請在升級至 8.0 完成後予以刪除。使用 OneFS 8.0.1.x 和更新版本下步驟 5 中的指示。
若為 OneFS 8.0.1.x 及更新版本:
- 將新憑證和金鑰匯入系統:
isi certificate server import /ifs/local/server.crt /ifs/local/server.key
- 驗證憑證是否已成功匯入:
isi certificate server list -v
- 將匯入的憑證設為預設:
isi certificate server modify --id=<id_of_cert_to_set_as_default> --default
isi certificate settings modify --default-https-certificate=<id_of_cert_to_set_as_default>
- 使用以下命令確認「預設 HTTPS 憑證」的狀態,以確定匯入的憑證已設為預設:
isi certificate settings view
- 如果有未使用或過時的憑證,請使用以下命令刪除:
isi certificate server delete --id=<id_of_cert_to_delete>
- 使用以下命令檢視新匯入的憑證:
isi certificate server view --id=<id_of_cert>
注意:連接埠 8081 和 8083 仍會為 SSL 使用本地資料夾的憑證。如果要將新證書用於埠 8081 和 8083,請按照以下步驟操作。
isi services -a isi_webui disable
chmod 640 server.key
chmod 640 server.crt
isi_for_array -s 'cp /ifs/local/server.key /usr/local/apache2/conf/ssl.key/server.key'
isi_for_array -s 'cp /ifs/local/server.crt /usr/local/apache2/conf/ssl.crt/server.crt'
isi services -a isi_webui enable
驗證
有兩種方法可用來驗證更新後的 SSL 憑證。
- 瀏覽至
https://<common name>:8080
,其中 <通用名稱> 是用來存取 Isilon Web 管理介面的主機名稱。例如: isilon.example.com
- 檢視網頁的安全性詳細資料。執行此操作的步驟會因瀏覽器而異。在某些瀏覽器中,透過按一下網址列中的鎖頭圖示,即可檢視網頁的安全性詳細資料。
- 在網頁的安全性詳細資料中,確認主旨行和其他詳細資料正確無誤。將顯示類似於以下內容的輸出,其中 <您的州>、 <您的城市>和 <您的公司> 是組織的州、城市和名稱:
Subject: C=US, ST=<yourstate>, L=<yourcity>, O=<yourcompany>, CN=isilon.example.com/emailAddress=support@example.com
- 在叢集的任何節點上開啟 SSH 連線,然後使用「root」帳戶登入。
- 執行下列命令:
echo QUIT | openssl s_client -connect localhost:8080
- 將顯示類似於以下內容的輸出,其中<您的州<>、您的城市>和<您的公司>是組織的州、城市和名稱:
Subject: C=US, ST=<yourstate>, L=<yourcity>, O=<yourcompany>, CN=isilon.example.com/emailAddress=support@example.com