June 29, 2014

AWS EC2 Load Balancer上設定SSL憑證

前一篇文章中提到了在AWS EC2上建立load balancer (以下簡稱LB)的方法,當時是以HTTP做分流為範例。我的開發環境中,SSL憑證是直接安裝在web server (IIS)上的,而EC2提供的LB具有SSL offloading的機制,可以直接把SSL憑證安裝在LB上,減輕web server加解密資料的負擔。

接續前面的設定,新增一筆listener。


Load Balancer Protocol選取HTTPS (Secure HTTP),點選SSL Certificate欄位裡的Change


可以看到頁面要求輸入憑證的相關資訊,如Private Key和Public Key Certificate,而且是*.pem格式。由於目前已經有SSL憑證安裝在IIS上,所以我必須先把憑證匯出成*.pfx再轉換成*.pem,並取出Private Key和Public Key Certificate。


將*.pfx轉換成*.pem需要借助OpenSSL,可至http://slproweb.com/products/Win32OpenSSL.html下載Windows專用的OpenSSL工具,在此下載Win64 OpenSSL v1.0.1h Light安裝。安裝完後在C:\OpenSSL-Win64\bin下會看到openssl.exe檔案。


準備好匯出的憑證,如G:\test.pfx。以管理者身份開啟Command Prompt,輸入C:\OpenSSL-Win64\bin\openssl.exe pkcs12 -in G:\test.pfx -out G:\test.pem -nodes及憑證匯出時所設定的密碼將*.pfx轉換成*.pem格式。


接下來輸入C:\OpenSSL-Win64\bin\openssl.exe x509 -in G:\test.pem -out G:\test_public.txt產生Public Key Certificate


接下來輸入C:\OpenSSL-Win64\bin\openssl.exe rsa -in G:\test.pem -out G:\test_private.txt產生Private Key


最後將G:\test_private.txt內容複製到Private Key欄位中,而G:\test_public.txt內容複製到Public Key Certificate欄位中。這裡要特別注意的是,檔案內容中如-----BEGIN RSA PRIVATE KEY-----和-----END RSA PRIVATE KEY-----皆需放至欄位中,否則無法設定成功。


輸入完後按下Save完成所有設定




參考
  1. Converting a .pfx/.p12 ("PKCS #12") file to certificate and key
  2. Install Wildcard Certificate onto AWS EC2 Load Balancer

No comments: