在Debian下建好了apache1.3.28+php4+mysql,現在加ssl
要有openssl,沒有,debian應該會apt上吧
1. apt-get install libapache-mod-ssl (carlos提示的,我在debian.org裡搜,ssl就沒找到),lib 會裝在 /usr/lib/apache/1.3/ 裡
2. modules-config apache enable mod_ssl (註:如果之後,php不起作用了,就再加一次mod_php4)
3. 修改 httpd.conf
添加 Port 80
Listen 80
Listen 443
添加 虛擬機器(不一定非用,也可以把下列ssl配置加在全域配置裡,不過,每個頁面都跳出認證,原因沒多想,反正虛擬機器方便,網上都是這麼乾的)
ServerName your.server.name
DocumentRoot /var/www
SSLCertificateKeyFile server.key (下面產生)
SSLCertificateFile server.crt (同上 )
4. 產生認證
以下照抄 <> 一文 永遠的unix http://www.fanqiang.com/a6/b8/20010722/1305001004.html
以下操作都在 /etc/apache/ 裡執行,至於認證該放在哪裡? 自己看著辦吧,我沒經驗
先建立一個 CA 的認證,
首先為 CA 建立一個 RSA 私用密鑰,
[S-1]
openssl genrsa -des3 -out ca.key 1024
系統提示輸入 PEM pass phrase,也就是密碼,輸入後牢記它。
產生 ca.key 檔案,將檔案屬性改為400,並放在安全的地方。
[S-2]
chmod 400 ca.key
你可以用下列命令查看它的內容,
[S-3]
openssl rsa -noout -text -in ca.key
利用 CA 的 RSA 密鑰建立一個自簽署的 CA 憑證(X.509結構)
[S-4]
openssl req -new -x509 -days 3650 -key ca.key -out ca.crt
然後需要輸入下列資訊:
Country Name: cn 兩個字母的國家代號
State or Province Name: An Hui 省份名稱
Locality Name: Bengbu 城市名稱
Organization Name: Family Network 公司名稱
Organizational Unit Name: Home 部門名稱
Common Name: Chen Yang 你的姓名
Email Address: sunstorm@263.net Email地址
產生 ca.crt 檔案,將檔案屬性改為400,並放在安全的地方。
[S-5]
chmod 400 ca.crt
你可以用下列命令查看它的內容,
[S-6]
openssl x509 -noout -text -in ca.crt
下面要建立伺服器憑證簽署請求,
首先為你的 Apache 建立一個 RSA 私用密鑰:
[S-7]
openssl genrsa -des3 -out server.key 1024
這裡也要設定pass phrase。
產生 server.key 檔案,將檔案屬性改為400,並放在安全的地方。
[S-8]
chmod 400 server.key
你可以用下列命令查看它的內容,
[S-9]
openssl rsa -noout -text -in server.key
用 server.key 產生認證簽署請求 CSR.
[S-10]
openssl req -new -key server.key -out server.csr
這裡也要輸入一些資訊,和[S-4]中的內容類別似。
至於 'extra' attributes 不用輸入。
你可以查看 CSR 的細節
[S-11]
openssl req -noout -text -in server.csr
下面可以簽署認證了,需要用到指令碼 sign.sh ---->指令碼在 /usr/share/doc/libapache-mod-ssl/example/ 裡 我就直接cp 到/etc/apache/裡了
[S-12]
sign.sh server.csr
就可以得到server.crt。
將檔案屬性改為400,並放在安全的地方。
[S-13]
chmod 400 server.crt
刪除CSR
[S-14]
rm server.csr
好了,apachectl restart 吧。ssl在全域的配置,最好在load modules之後,要不apache起不了,還不報哪裡錯。
好了,試試 https://your.server.name/ 吧,一切正常,應該跳出認證表單,可惜提示,不可信任,呵呵。