當把Apache開啟後,由於都是本機端測試,因此只需在網址列輸入http://localhost,立即就可看到自己所開發的小程式,也因為是本機模擬,所以網址就只能使用http,因此需等網頁上線後,才能套用https安全憑證,並檢測看網頁是否能正常運作,這樣實在有點不便,因此現在只需透過openssl,就可讓本機端開啟安全憑證,至於要怎麼來發憑證與設定,現在就一塊來看看囉!
Step1
首先,先進到/etc/apache2/的目錄下,再新增一個ssl資料夾。
Step2
接著開啟終端機,輸入下方的語法,當發送完成時,分別在ssl資料夾中,就會看到localhost.key與loaclhost.crt二個檔案。
一、進入ssl目錄下
cd /etc/apache2/ssl/
二、配發openssl憑證
openssl req -x509 -out localhost.crt -keyout localhost.key
-newkey rsa:2048 -nodes -sha256
-subj '/CN=localhost' -extensions EXT -config <(
printf "[dn]\nCN=localhost\n[req]\ndistinguished_name = dn\n[EXT]\nsubjectAltName=DNS:localhost\nkeyUsage=digitalSignature\nextendedKeyUsage=serverAuth")
-newkey rsa:2048 -nodes -sha256
-subj '/CN=localhost' -extensions EXT -config <(
printf "[dn]\nCN=localhost\n[req]\ndistinguished_name = dn\n[EXT]\nsubjectAltName=DNS:localhost\nkeyUsage=digitalSignature\nextendedKeyUsage=serverAuth")
Step3
接著開啟「鑰匙圈存取」面板,再將剛所產生的localhost.crt拖曳到視窗中。
Step4
接著雙響localhost.crt憑證,再將「信任」設為「永遠信任」。
Step5
使用文字編輯器,開啟/private/etc/apache2/extra/httpd-ssl.conf文件,並用搜尋關鍵字的方式,將下方三個設定的註解拿掉。
LoadModule socache_shmcb_module libexec/apache2/mod_socache_shmcb.so
LoadModule ssl_module libexec/apache2/mod_ssl.so
Include /private/etc/apache2/extra/httpd-ssl.conf
LoadModule ssl_module libexec/apache2/mod_ssl.so
Include /private/etc/apache2/extra/httpd-ssl.conf
Step6
接著再開啟/private/etc/apache2/extra/httpd-ssl.conf文件,輸入下方的設定。
Listen 443
SSLCertificateFile /etc/apache2/ssl/localhost.crt
SSLCertificateKeyFile /etc/apache2/ssl/localhost.key
<VirtualHost default:443>
DocumentRoot "/Library/WebServer/Documents"
SSLEngine on
</VirtualHost>
SSLCertificateFile /etc/apache2/ssl/localhost.crt
SSLCertificateKeyFile /etc/apache2/ssl/localhost.key
<VirtualHost default:443>
DocumentRoot "/Library/WebServer/Documents"
SSLEngine on
</VirtualHost>
Step7
都完成後,儲存再到終端機中,輸入「sudo apachectl configtest」,當看到Syntax OK就表示設定檔沒問題。
Step8
這時再重啟apache,開啟瀏覽器,並輸入https://localhost,哈!這時鎖頭就出現啦!如此一來在本機端的情況下,也可使用https進行開發與測試,就不用等到上線後,真的超方便的啦!