2008/10/17

在 Ubuntu 上安裝 Apache2 的 HTTPS Server

在 Ubuntu 8.04 上安裝一般的 Apache2 HTTP server 非常簡單,只要以下的指令:
sudo apt-get install apache2
若要安裝支援 SSL 的 HTTPS server 還需以下步驟:
sudo apt-get install openssl
sudo apt-get install ssl-cert
sudo make-ssl-cert /usr/share/ssl-cert/ssleay.cnf \
/etc/ssl/private/localhost.pem
第三動是要產生 SSL 用的 key。執行時會問以下的問題 (若只想作作實驗,可以先隨便填):
Country Name = TW
State or Province Name = Taiwan
Locality Name = Some-Locality
Organization Name = One Organization
Organizational Unit Name = Organizational Unit Name
Host Name = localhost
Email Address = webmaster@localhost
接下來是要設定 Apache2:
# 先換到這個目錄
cd /etc/apache2/sites-available/
sudo -s

# 保存一版原有的 default
cp default default.backup.date

# 確定 default port 是 80
sed -i '1,2s/\*/*:80/' default

# 複製 default 來當作 ssl 的樣板
cp default ssl

# 以下兩個 sed 是將樣板前給行修改成 SSL 需要的設定,也就是:
# ========================================
# NameVirtualHost *:443
# <virtualhost>
# ServerAdmin webmaster@localhost
# SSLEngine On
# SSLCertificateFile /etc/ssl/private/localhost.pem
#
# DocumentRoot /var/www/
# ========================================

sed -i '1,2s/\*:80/*:443/' ssl
sed -i "3a\\\tSSLEngine On\n\tSSLCertificateFile /etc/ssl/private/localhost.pem" ssl

# 把剛剛完成的 SSL 掛上去
a2ensite ssl
a2enmod ssl

# 重新啟動 apache2
/etc/init.d/apache2 restart
完成上述動作之後,你就可以用 https://localhost 看到「It works!」了。當然,架正式網站時,你可能會想要一個正式的 key。那麼上面的資料就要好好填,而且得準備一點錢去申請。這我就沒有經驗了。

參考資料:
https://launchpad.net/ubuntu/+source/apache2/+bug/77675/comments/47

1 則留言:

Jarod 提到...

谢谢,这份资料我正需要 ,学习了。