apache配置ssl
转载自 www.gd-linux.com/bbs/showthread.php?t=39
我经过了测试,一次成功
系统:RH9.0 AS3.0
软件包:httpd-2.0.50.tar.gz
openssl-0.9.7d.tar.gz
ssl.ca-0.1.tar.gz
安装过程
1安装openssl-0.9.7d
#tar zxvf openssl-0.9.7d.tar.gz
#cd openssl-0.9.7d
#./config
#make
#su
#make install
默认的安装是将openssl全部安装在 /usr/local/ssl 目录下面,所以编译apache的时候,需要指定ssl的目录:–with-ssl=/usr/local/ssl ,因为它在编译的时候要用到openssl提供的头文件和库。
2.安装httpd-2.0.50
#tar zxvf httpd-2.0.50.tar.gz
#./configure –prefix=/usr/local/apache2 –enable-so
–enable-ssl=static –with-ssl=/usr/local/ssl –enable-mods-shared=all
#make
#make install
安装的openssl默认是没有编译成动态链接库的,因为其文档说openssl的动态链接库还不成熟,可以使用 ./config shared 编译带动态链接库的openssl,但是还处于试验阶段。
解决这个问题的办法是:将mod_ssl静态的编译到apache里面。
3.制作证书
可以用来生成ssl所用到的证书。
现在没有这个工具了,只能自己动手生成了,对证书不熟悉的人,有一个工具可以使用:http://www.openssl.org/contrib/ssl.ca-0.1.tar.gz
#cp ssl.ca-0.1.tar.gz /usr/local/apache2/conf
#cd /usr/local/apache2/conf
#tar zxvf ssl.ca-0.1.tar.gz
#cd ssl.ca-0.1
#./new-root-ca.sh (生成根证书)
No Root CA key round. Generating one
Generating RSA private key, 1024 bit long modulus
………………………++++++
….++++++
e is 65537 (0×10001)
Enter pass phrase for ca.key: (输入一个密码)
Verifying - Enter pass phrase for ca.key: (再输入一次密码)
……
Self-sign the root CA… (签署根证书)
Enter pass phrase for ca.key: (输入刚刚设置的密码)
……..
…….. (下面开始签署)
Country Name (2 letter code) [MY]:CN
State or Province Name (full name) [Perak]:GuangDong//随你喜欢
Locality Name (eg, city) [Sitiawan]:GuangZhou//随你喜欢
Organization Name (eg, company) [My Directory Sdn Bhd]:GDLC//随你喜欢
Organizational Unit Name (eg, section) [Certification Services Division]:GDLC//随你喜欢
Common Name (eg, MD Root CA) []:winson CA//随你喜欢
Email Address []:yu.hanhui@gd-linux.org//随你喜欢
这样就生成了ca.key和ca.crt两个文件,下面还要为我们的服务器生成一个证书:
# ./new-server-cert.sh server (这个证书的名字是server)
……
……
Country Name (2 letter code) [MY]:CN
State or Province Name (full name) [Perak]: GuangDong
Locality Name (eg, city) [Sitiawan]: GuangZhou
Organization Name (eg, company) [My Directory Sdn Bhd]:GDLC
Organizational Unit Name (eg, section) [Secure Web Server]:GDLC
Common Name (eg, www.domain.com) []:localhost
Email Address []:yu.hanhui@gd-linux.org
这样就生成了server.csr和server.key这两个文件。
还需要签署一下才能使用的:
# ./sign-server-cert.sh server
CA signing: server.csr -> server.crt:
Using configuration from ca.config
Enter pass phrase for ./ca.key: (输入上面设置的根证书密码)
Check that the request matches the signature
Signature ok
The Subject’s Distinguished Name is as follows
countryName : PRINTABLE:’CN’
stateOrProvinceName : PRINTABLE:’JiangSu’
localityName : PRINTABLE:’NanJing’
organizationName : PRINTABLE:’Wiscom System Co.,Ltd’
organizationalUnitName: PRINTABLE:’ACSTAR’
commonName : PRINTABLE:’acmail.wiscom.com.cn’
emailAddress :IA5STRING:’acmail@wiscom.com.cn’
Certificate is to be certified until Jul 16 12:55:34 2005 GMT (365 days)
Sign the certificate? [y/n]:y
1 out of 1 certificate requests certified, commit? [y/n]y
Write out database with 1 new entries
Data Base Updated
CA verifying: server.crt < -> CA cert
server.crt: OK
(如果这里出现错误,最好重新来过,删除ssl.ca-0.1这个目录,从解压缩处重新开始。)
下面要按照ssl.conf里面的设置,将证书放在适当的位置。
# chmod 400 server.key
# cd ..
# mkdir ssl.key
# mv ssl.ca-0.1/server.key ssl.key
# mkdir ssl.crt
# mv ssl.ca-0.1/server.crt ssl.crt
然后就可以启动啦!
# cd /usr/local/apache2
# ./bin/apachectl startssl
对于这个提示:
httpd: Could not determine the server’s fully qualified domain name, using 127.0.0.1 for ServerName
只需要编辑httpd.conf,找到ServerName xxxx这一行,去掉前面的注释即可。
浏览器https://127.0.0.1
成功!!
另外一个可以参考的:
转自:http://phpbb-tw.net/phpbb/viewtopic.php?p=128765
因為工作需求,我需要讓網站跑SSL
我的環境是
red hat9.0
apache 2.0.48 + resin 2.1.12
在憑證的部分已經ok,網際威信也已經核發憑證給我
但是在apache方面
花了兩天嘗試,一直無法順利讓443 port起來
使用netstat -nl去查看,只有80 port跑的起來
我是使用apache startssl來啟動apache
中間也無錯誤訊息
問了google也只丟給我apache1.3+SSL的範例
在apache2.0的官方document也是看的一頭霧水
我把苦了3天的安裝心得分享給各位
ps.Red hat9的openssl-0.9.7a有bug,記得安裝新版的openssl..
—————————————-
1.下載原始檔
Apache: 例如 httpd-2.0.48.tar.gz(www.apache.org)
OpenSSL: 例如 openssl-0.9.7c.tar.gz (www.openssl.org)
2.進行解壓縮
命令如下:
#tar xzvf httpd-2.0.48.tar.gz
#tar xzvf openssl-0.9.7c.tar.gz
4.接下來進行 OpenSSL 的安裝設定
# cd openssl-0.9.7c (進入解壓縮後的 openssl source 資料夾中)
# ./config –prefix=/usr/local –openssldir=/usr/local/openssl
#make
#make install
7.最後的安裝 Apache
#cd httpd-2.0.48 (進入解壓縮後的 apache 原始檔資料夾)
#./configure –prefix=/usr/local/apache –enable-so –enable-ssl –with-ssl=/usr/include
#make (編譯)
#make install (編譯完成執行安裝)
(三).產生及安裝憑證
1.完成以上軟體的安裝後, 我們便可開始進行憑證申請及安裝, 其程序大致如下:
1) 產製金鑰對
2) 產生憑證申請檔
3) 至網際威信申請憑證
4) 安裝憑證
2.接著, 請開始產製金鑰對, 為了有系統管理金鑰及憑證, 請在您安裝 apache 的資料夾中, 建立一新子目錄, 例如 certs, 並切換到該資料夾中
3.請輸入如下的命令, 產製金鑰對
#openssl genrsa –des3 –out mykeys.key 1024
參數說明: genrsa 表示使用 RSA 演算法產製金鑰
-des3 表示使用 DES3 加密演算法
-out mykeys.key 表示輸出的檔案為何, 檔名及路徑可自定
1024 表示金鑰對長度為 1024 (建議使用)
% 您可以另外使用 openssl genrsa ? 看其全部的參數
接著, 會出現 Generating RSA Private key, 1024 long module…至
Enter PEM pass phrase: (請在此輸入金鑰對密碼)
注意, 請特別保留該組密碼, 其作為將來啟動 Apache + SSL 時的密碼, 一旦遺失, 則便無法啟動
4.完成後, 便建立好金鑰對了, 您可以看到在所設定路徑下會有個金鑰對的檔案, 如本例子為 mykeys.key, 接著, 請輸入如下命令, 以產生 CSR 檔
#openssl req –new –key mykeys.key –out mysite.csr
參數說明: req 表示要產生 CSR 檔
-new 新的檔案
-key mykeys.key 金鑰對檔案的路徑及檔名
-out mysite.key 所產生的 CSR 檔案的路徑及檔名
接著, 會出現 Enter PEM pass phrase: (請輸入先前設定好的密碼)
之後, 便須開始輸入一些相關資料如下(請輸入英數字, 不可有任何特殊字元):
Country Name : TW (請用兩個英文字元表示)
State or Province Name: Taiwan (省份名稱)
Locality Name: Taipei (城市名稱)
Organization Name: (公司名稱)
Organizational Unit Name: (部門名稱)
Common Name: my.website.com.tw (網址名稱, 即公用名稱, 您要使用 SSL 加密的站台名稱)
Email Address: me@localhost.com.tw (網站管理者的email address)
此外, 尚有一些 extra 的資料, 您可不理會, 直接按 Enter 過去即可, 最後即可產生 mysite.csr 檔
請將該 CSR 以文字編輯軟體開啟, 並複製貼上至網際威信 www.hitrust.com.tw
5.在憑證核發後, 您會收到一封 Email, 其中包含憑證檔案
6.請將其剪下, 另存成一個文字檔, 檔名自定, 如 mysite.crt, 並放置於剛剛所建立為了管理方便起見的 certs 資料夾中(當然, 您可以依據自己的需要, 放置於您決定的路徑即可)
7.另外, 如果您是申請 VeriSign 128 bits SSL 伺服器數位憑證時, 在 Email 中亦會要求您至如下的網址, 取得中繼憑證, 請記得務必要執行此項動作
8.最後, 您只須修改 Apache 的設定檔 ssl.conf
1)
Listen 443
預設值 443
2)
# General setup for the virtual host
DocumentRoot “/var/www/html”
ServerName www.ooo.xxx:443
ServerAdmin mymail@mail.com.tw
ErrorLog /usr/local/apache/logs/error_log
TransferLog /usr/local/apache/logs/access_log
設定方式與httpd.conf雷同
3)
# SSL Engine Switch:
# Enable/Disable SSL for this virtual host.
SSLEngine on
預設值 on
4) SSLCertificateFile
/usr/local/apache/certs/mysite.crt
即憑證路徑, 請指向放置憑證檔的路徑
5) SSLCertificateKeyFile
/usr/local/apache/certs/mykeys.key
即私鑰路徑, 請指向放置私鑰檔的路徑
6) SSLCertificateChainFile
/usr/local/apache/certs/intermediate.crt
若您申請 VeriSign 128 bits SSL 伺服器數位憑證, 您務必要設定
9.之後, 您便可重新啟動 apache 了, 命令如下:
#apachectl startssl
在啟動過程中, 會要求您輸入密碼如下:
Enter pass phrase: (請在此輸入您當初產製金鑰對時的密碼)
