本文記錄如何啟用ssl也就是使你的apache支援https協定
執行
sudo a2enmod ssl
看到如下提示
Enabling module ssl.
See /usr/share/doc/apache2.2-common/README.Debian.gz on how to configure SSL and create self-signed certificates.
Run '/etc/init.d/apache2 restart' to activate new configuration!
證明成功啟用ssl子產品
下面我們要生成ssl證書,需要用到openssl
執行
sudo apt-get install openssl
安裝成功後執行如下指令建立key
openssl genrsa -des3 -out server.key 1024
期間會提示輸入密碼和确認密碼
下面建立CSR 證書簽發請求
openssl req -new -key server.key -out key.csr
系統會向你索取一些資訊,簡單的英文,逐一填寫好就是了
執行如下指令擷取server.key和server.csr的路徑
locate *server.key*
我系統中兩個檔案在/etc/cups/ssl中
進入該目錄
cd /etc/cups/ssl
執行如下兩條指令安裝證書
sudo cp server.crt /etc/ssl/certs
sudo cp server.key /etc/ssl/private
接下來修改虛拟主機配置,讓其啟用ssl,編輯/etc/apache2/sites-available/default,在<VirtualHost>中,DocumentRoot一行的下方加入下面内容:
SSLEngine on
SSLOptions +StrictRequire
SSLCertificateFile /etc/ssl/certs/server.crt
SSLCertificateKeyFile /etc/ssl/private/server.key
重新開機apache
/etc/init.d/apache2 restart
測試一下,是不是會傳回錯誤
安全連接配接失敗
連接配接localhost時發生錯誤。
SSL 接收到一個超出最大準許長度的記錄。
(錯誤碼: ssl_error_rx_record_too_long)
編輯/etc/apache2/sites-available/default 把
<VirtualHost *:80>
改為
<VirtualHost *>
重新開機apache試試,成功了吧?之前到底為什麼會提示安全連接配接失敗我不知道,猜測是虛拟主機配置的問題,修改之後apache啟動會有一個 warn,不過不影響什麼。