2013-06-09

Ubuntu Server 13.04 (64位元) 安裝 Apache 並啟用 SSL

如要快速的架設 LAMP 環境,只要使用以下指令即可
sudo apt-get install lamp-server^
本篇將循序的從 Apache2、PHP、MySQL 的安裝來介紹,首先是 Apache 的架設

輸入以下指令安裝 Apache2
sudo apt-get install -y apache2

完成後到瀏覽器輸入 http://伺服器名稱或 IP 位址,如出現以下畫面表成功安裝並啟動 Apache2

Apache2 的主要設定檔放在 /etc/apache2/apache2.conf,埠號的設定檔在 /etc/apache2/ports.conf
apache.conf 內容畫面(第一頁)

ports.conf 內容畫面


接下來要介紹的是設定 Apache2 的 SSL 連線,先檢查 openssl 套件是否安裝
sudo dpkg --get-selections | grep openssl
接著啟用 Apache2 的 SSL 模組
sudo a2enmod ssl

Apache2 SSL 連線設定步驟如下:1.產生伺服器的金鑰、2.建立憑證要求 (Certificate Signing Request)、3.產生自我簽署憑證 (Self-Signed Certificate)、4.設定 Aapche2 Virtual Hosts

1.產生伺服器用的金鑰
sudo openssl genrsa -out server.key 2048

2.接著建立憑證要求 (Certificate Signing Request)
sudo openssl req -new -key server.key -out server.csr
接著會要求填寫下列欄位
Country Name (2 letter code) [AU]:TW          //國家代碼
State or Province Name (full name) [Some-State]:Taiwan R.O.C          //洲或省名稱
Locality Name (eg, city) []:Taipei          //地區名稱
Organization Name (eg, company) [Internet Widgits Pty Ltd]:Ubuntu Server          //組織單位名稱
Organizational Unit Name (eg, section) []:Personal Research          //部門名稱
Common Name (eg, YOUR name) []:localhost.localhost          //憑證名稱 (伺服器 FQDN)
Email Address []:howard@localhost          //電子信箱
Please enter the following 'extra' attributes
to be sent with your certificate request
A challenge password []:          //申請書密碼,按 Enter 跳過
An optional company name []:          //憑證代辦公司,按 Enter 跳過

3.產生自我簽署憑證 (Self-Signed Certificate)
sudo openssl x509 -req -days 365 -in server.csr -signkey server.key -out server.crt
安裝憑證
sudo cp server.crt /etc/ssl/certs
sudo cp server.key /etc/ssl/private

4.設定 Aapche2 Virtual Hosts
sudo vi /etc/apache2/sites-available/default

將 <virtualhost *:80>...</virtualhost> 內容複製,並貼在文件內容最下面
在一般模式下把游標移到最上列,按下『yG』可複製游標所在列到最後一列的所有資料,接著把游標移到最下列,按下小寫『p』可以貼上,然後按『i』進入編輯模式

將 <virtualhost *:80> 改為 <virtualhost *:443>
在 ServerAdmin 下新增以下一行
ServerName localhost:443          //請填入自己的伺服器名稱
在<Directory "/usr/lib/cgi-bin">...</Directory>下新增以下三行
SSLEngine on
SSLCertificateFile /etc/ssl/certs/server.crt          //請確認要跟第3.步驟安裝憑證路徑一樣
SSLCertificateKeyFile /etc/ssl/private/server.key          //請確認要跟第3.步驟安裝憑證路徑一樣

最後重新啟動 Apache2
sudo service apache2 restart
到瀏覽器輸入 https://伺服器名稱或 IP 位址,查看是否可使用 SSL 連線,若出現以下畫面代表成功連線,請點選『繼續瀏覽此網站』

瀏覽器所顯示的憑證資訊


參考文章:

  1. Ubuntu Documentation: Apache2 Web Server
  2. Ubuntu Documentation: Certificates
  3. 不自量力 の Weithenn: SSL Certificate-自行產生 SSL 憑證
  4. K's隨手記: Ubuntu 12.04啟用apache的 SSL

沒有留言 :

張貼留言