我習慣在本機上開發程式,做完初步測試後才會佈署到測試主機或正式主機。為此,有些要求使用 https 安全連線的頁面在本機就無法進入,所以才興起了在本機簽署一個憑證作為開發之用的念頭。因為步驟還蠻長的,做個筆記給未來的自己。
第一步:停止 MAMP 以及其他可能佔用 port 的應用程式
MAMP 預設是跑 8888 port,不過我的習慣是改到 80 port,SSL 需要 443 port,也要確定沒有被佔用到。
第二步:建立自己簽署的 SSL 憑證
通常為了開發和測試才會建立這種沒有經過第三方認證的憑證,如果是為了上線運作的網站,要向公正單位購買憑證。
同事推薦的憑證商是 rapidssl.com。
產生私鑰
在 OS X Terminal 輸入以下指令,建議先用 pwd 看一下當前目錄。
openssl genrsa -des3 -out server.key 1024
輸入兩次密碼。
產生憑證需求檔 (Certiciate Signing Request, CSR)
openssl req -new -key server.key -out server.csr
輸入剛剛的密碼,打錯會產生不出對應的 CSR。
接下來會出現一連串問題,最重要的是 Common Name 這一項,必須跟你的域名對應。
Country Name (2 letter code) [AU]: TW State or Province Name (full name) [Some-State]: Taiwan Locality Name (eg, city) []: Taipei Organization Name (eg, company) [Internet Widgits Pty Ltd]: [公司名稱] Organizational Unit Name (eg, section) []: Development Common Name (eg, YOUR name) []: dev.mywebsite.com Email Address []: [Email] A challenge password []: An optional company name []:
(challenge password 可以留空)
產生憑證
openssl x509 -req -days 365 -in server.csr -signkey server.key -out server.crt
輸入剛剛的密碼。
移除 server.key 的密碼
cp server.key server.tmp openssl rsa -in server.tmp -out server.key
將憑證和私鑰移到 MAMP
cp server.crt /Applications/MAMP/conf/apache cp server.key /Applications/MAMP/conf/apache
第三步:編輯 MAMP Apache 設定檔
這個步驟是啟用 MAMP 的 SSL 支援。這邊用的 MAMP 2.0.5 版,舊版路徑略有不同。
編輯 MAMP httpd.conf 檔案 (/Applications/MAMP/conf/apache/httpd.conf)
第536行左右,將 Include 前的井字號去除,井字號是註解的意思。
# Secure (SSL/TLS) connections Include /Applications/MAMP/conf/apache/extra/httpd-ssl.conf
編輯 MAMP httpd-ssl.conf 檔案 (/Applications/MAMP/conf/apache/extra/httpd-ssl.conf)
第99行,去除井字號。
SSLCertificateFile "/Applications/MAMP/conf/apache/server.crt"
第108號,去除井字號。
SSLCertificateKeyFile "/Applications/MAMP/conf/apache/server.key"
如果有使用 VirtualHost 的話,可以在 httpd-vhosts.conf (/Applications/MAMP/conf/apache/extra/httpd-vhosts.conf) 加上以下設定。
<VirtualHost dev.mywebsite.com:443> DocumentRoot [網站目錄,通常是 /Applications/MAMP/htdocs/] ServerName dev.mywebsite.com SSLEngine on SSLCertificateFile /Applications/MAMP/conf/apache/server.crt SSLCertificateKeyFile /Applications/MAMP/conf/apache/server.key </VirtualHost>
第四步,啟動 MAMP Apache
大工告成,現在可以測試 http://dev.mywebsite.com 和 https://dev.mywebsite.com 了。
Leave a Reply