2016年6月1日星期三

啟動 Apache 的 SSL 功能

由於 HTTP 沒有加密,瀏覽者的資料若被截取,便可以很輕鬆閱其內容
因此使用 HTTPS 亦不此為方法,但 Apache 原本沒有啟動 SSL 功能……

Debian / Ubuntu / Linux Mint 等 Linux 發行版,可以使用
sudo apt-get install apache2
安裝 Apache

見下文
以 HTTP 能正常瀏覽

見下文
未啟動 SSL 所以以 HTTPS 未能瀏覽

到 /etc/apache2/sites-enabled 輸入
sudo ln -s ../site-available/default-ssl.conf 001-default-ssl.conf
使用由 發行版 提供的 HTTPS 設定
輸入
sudo a2enmod ssl
啟動 Apache 的 SSL 功能
輸入
sudo service apache2 restart
重新啟動 Apache 讓新功能運作

見下文
見下文
見下文
由於使用由發行版提供的 私鑰 及 證書沒有認證 (並非指不安全)
因此瀏覽該網頁時,需要將網址列位例外網站才能瀏覽

若不使用由官方提供的 私鑰 及 證書,亦可以自行建立 私鑰 及 證書
輸入
COUNTRY='HK'
PROVINCE='HK'
CITY='HK'
COMPANY='A Company'
UNIT='A Unit'
DOMAIN='a.com'
EMAIL='a@a.com'
DAYS='365'
PATH_TO_OUT='/path/to'
echo -e "${COUNTRY}\n${PROVINCE}\n${CITY}\n${COMPANY}\n${UNIT}\n${DOMAIN}\n${EMAIL}\n" | \
openssl req -x509 -nodes -days "${DAYS}" -newkey rsa:2048 -keyout "${PATH_TO_OUT}/private.key" -out "${PATH_TO_OUT}/public.crt"
在下將設定值加入至 shell 中,讓閣下使用時只需要直接更改設定值便可以快速建立 私鑰 及 證書

然後在 Apache 的設定檔加入
<IfModule mod_ssl.c>
    <VirtualHost _default_:443>
        ServerAdmin webmaster@localhost
        DocumentRoot /path/to/htdocs
        ErrorLog ${APACHE_LOG_DIR}/error.log
        CustomLog ${APACHE_LOG_DIR}/access.log combined
        SSLEngine on
        SSLCertificateFile /path/to/public.crt
        SSLCertificateKeyFile /path/to/private.key
    </VirtualHost>
</IfModule>
當中 VirtualHost _default_:443 的 _default_ 為與原本 Apache 的 host 相同設定值

沒有留言 :

發佈留言