對於一般使用者使用上很簡單,沒有 Windows 上這麼多繁瑣的事情與中毒等等複雜的問題。
對於開發者來說,除了韌體跟Microsoft solution 之外,其他的都很方便,像是:Java/PHP/Ruby/C/C++,不管是 Web/Mobile 都是。
我想光是不會中毒跟當機就讓我很愛了!
但是對於開發者來說設定一直都是比較多問題的,因為得要手動做很多的事情。
OpenSSL 的設定我想就是讓很多人煩惱的一件事情,預設上 OSX的 Apache 是沒有 SSL Enablea的。
安裝跟設定 SSL有下面幾個步驟
- OpenSSL 安裝與設定
- Apache SSL Enable 的設定方式
- 測試&完工
需要的軟體有兩個
- OpenSSL (下面的步驟會有下載的地方)
- Apache (OSX已經內載了)
接下來就跟著一步步來吧!
OpenSSL 的安裝與設定
打開你的 Termal 然後輸入下列的指令
- 切換到本機暫存原始碼的目錄,然後下載 OpenSSL 原始碼
cd /usr/local/src curl --remote-name http://www.openssl.org/source/openssl-1.0.2g.tar.gz
- 解壓縮後進入到原始碼目錄內
tar -xzvf openssl-1.0.2g.tar.gz cd openssl-1.0.2g
- 設定/編譯然後進行安裝,下面的設定會安裝到 /usr/local/openssl-1.0.2g 目錄下
./configure darwin64-x86_64-cc --prefix=/usr/local/openssl-1.0.2g make depend make install
- 製作一個 openssl 的連結,如此做可以讓以後在更版的時候簡單點
ln -s openssl-1.0.2g /usr/local/openssl
- 設定環境變數後讀取新的設定
echo 'export PATH=/usr/local/openssl/bin:$PATH' >> ~/.bash_profile echo 'export MANPATH=/usr/local/openssl/ssl/man:$MANPATH' >> ~/.bash_profile source ~/.bash_profile
- 安裝憑證
security find-certificate -a -p /Library/Keychains/System.keychain > /usr/local/openssl/ssl/cert.pem security find-certificate -a -p /System/Library/Keychains/SystemRootCertificates.keychain >> /usr/local/openssl/ssl/cert.pem
- 測試安裝
openssl version -a
- 如果出現錯誤則需要以照錯誤的訊息去做修正,如果看到正確的版本資訊那代表安裝成功
製作憑證
- 製作金鑰
$ cd /etc/apache2 $ sudo ssh-keygen -f server.key
- 產生憑證簽章需要的檔案
$ sudo openssl req -new -key server.key -out server.csr
- 使用CSR去製作憑證
$ sudo openssl x509 -req -days 365 -in server.csr -signkey server.key -out server.crt
- 製作RSA金鑰
$ sudo openssl rsa -in server.key -out server.key
設定並啟動 Aapche 的 SSL 支援
下面只針對 SSL 設定步驟做描述
- 打開你的 Termal 執行指令修改 httpd.conf
sudo nano /etc/apache2/httpd.conf 將下列幾行的註解符號刪除後儲存(儲存的熱鍵是 control + x 然後選 Y) LoadModule socache_shmcb_module libexec/apache2/mod_socache_shmcb.so LoadModule ssl_module libexec/apache2/mod_ssl.so
- 編輯設定檔來打開 HTTPS 支援
DocumentRoot "/Users/your_user/Sites" ServerName localhost SSLEngine on SSLCertificateFile "/private/etc/apache2/server.crt" SSLCertificateKeyFile "/private/etc/apache2/server.key" - 測試 Apache 的設定,如果沒問題就重新啟動 Apache
$ sudo apachectl configtest $ sudo apachectl -k restart
- 開啟瀏覽器打開 https://localhost/~{YOUR USERNAME} 測試看看