RHEL / CentOS Apache SSL 筆記
參考文件:RHEL5 Deployment Guidedate: 2007/11/12
套件需求:
http:apache web servermod_ssl:apache mod_ssl模組
openssl:用來實踐SSL及TLS協定
crypto-utils:提供一系列套件產生、管理憑證
使用現有的憑證與金鑰
例外情況:- IP或Domain name有更改的狀況下不得使用先前建立的憑證和金鑰,若有這種狀況必需要重新建立憑證。
- 若你有購買VeriSign的憑證並且準備更換軟體,由於VeriSign所發行的憑證是給特定用途的軟體、IP或domain name,所以不得延續使用現有的憑證。
產生憑證及金鑰
1.移除在安裝時建立的測試憑證及金鑰Shell> cd /etc/httpd/conf
Shell> rm ssl.key/server.key
Shell> rm ssl.crt/server.crt
2.使用 crypto-utils 所含的 genkey 指令來產生金鑰,假設要建立 www.example.com 的金鑰,使用如下指令
Shell> genkey --days 3650 www.mycompany.com3. genkey www.example.com 後的畫面
#注意RHEL5不再使用make的方式產生金鑰,改由genkey代替。
# --days 代表憑證有效時間,單位為天,若不指定預設為30天
RHEL4版預設將金鑰及憑證存放於/usr/share/ssl/private和/usr/share/ssl/certs
7.填寫憑證內容
Country Name (ISO 2 letter code):TW
#填寫國家代碼,台灣為TW
State or Province Name (full name):
#填寫州、省,台灣沒有州、省,所以略過
Locality Nmae (e.g. city):Taipei
#填寫城市名如Taipei
Organization Name (eg, company):MyCompany
#填寫公司或組織名稱如MyCompany
Organizational Unit Name (eg, section):IT
#填寫公司或組織單位如IT
common Name (FQDN):www.mycompany.com
#填寫網站 hostname如:www.mycompany.com
其餘可以略過不填寫
9. 一切大功告成,依照你的 RHEL 版本會放在 /usr/share/ssl/private|certs(RHEL4),/etc/pki/tls/private|certs(RHEL5)下
10.修改 /etc/httpd/conf.d/ssl.conf 裡的 SSLCertificateFile 和 SSLCertificateKeyFile 參數,指到存放憑證及金鑰的路徑。
Shell> vi /etc/httpd/conf.d/ssl.conf11.重新啟動apache
SSLCertificateFile /usr/share/ssl/certs/www.example.com.crt
SSLCertificateKeyFile /usr/share/ssl/private/www.example.com.key
新增vertualhost
<VirtualHost *:443>
DocumentRoot /var/lib/www
ServerName www.example.com
</VirtualHost>
Shell> /sbin/service httpd restart
Troboshooting
- Q1:
連結 https://hostname 都會出現錯誤,apache 的 error log 出現 Invalid method in request x16x03x01。
A1:
將所有的 <VirtualHost 0.0.0.0> 改成 <VirtualHost *:80>試試看,若有NameVirtualHost 0.0.0.0 也改成 NameVirtualHost *:80
即可解決上述問題。
參考:
http://www.mail-archive.com/modssl-users@modssl.org/msg17516.html
轉貼至http://beakdoosan.blogspot.tw/
沒有留言:
張貼留言