HTTPS是一個安全的訪問方式,數據在傳輸過程中是加密的,HTTPS基於SSL加密。
一:安裝apache模塊和ssl模塊。
yum install httpd httpd-devel mod_ssl
安裝完成mod_ssl後會創建一個默認ssl證書,存放路徑爲/etc/pki/tls
SSL的配置文件存放在HTTP配置目錄下的conf.d/ssl.conf
二:使用openssl手動創建證書
yum install openssl openssl-devel
cd /etc/pki/tls
1.生成私鑰:
openssl genrsa -out server.key 2048
2.用私鑰生成證書請求文件
openssl req -new -key server.key -out server.csr
此時需要你輸入一些信息:(某些認證機構可能默認不支持中文,所以建議寫相對應的英文)
Country Name (2 letter code) [XX]:CN State or Province Name (full name) []:shanghai Locality Name (eg, city) [Default City]:shanghai Organization Name (eg, company) [Default Company Ltd]:ccc Organizational Unit Name (eg, section) []:bbb Common Name (eg, your name or your server's hostname) []:www.test.com Email Address []:[email protected]
隨後會讓輸入一個密碼,從這裏開始可以都不輸入,回車跳過
3.如果是需要提交給認證機構,就把server.key和server.csr提交即可,注意一定要保留server.key
4.手動生成crt文件
openssl x509 -days 365 -req -in server.csr -signkey server.key -out server.crt
三、配置ssl.conf文件
cp ssl.conf ssl.conf.bak
#修改配置文件前,先備份,養成好的習慣。
1. 找到:
SSLCertificateFile/etc/pki/tls/certs/localhost.crt
修改路徑到你的crt文件位置
例如:
SSLCertificateFile /etc/pki/tls/mycerts/server.crt
2. 找到
SSLCertificateKeyFile/etc/pki/tls/private/localhost.key
修改路徑到你的key文件位置
例如:
SSLCertificateKeyFile /etc/pki/tls/mycerts/server.key
3. 找到#
SSLCertificateChainFile conf/ssl.crt/ca.crt
去掉#,修改文件到你的中級CA證書存放位置,如果有認證機構會給你的。
四、啓動apache檢驗結果是否生效
server httpd start #啓動httpd
httpd -M | grep ssl
#檢測mod_ssl是否加載成功
如果httpd無法啓動,檢測錯誤日誌文件:
httpd日誌文件在 #缺省位置
/var/log/httpd/error_log
ssl日誌文件在httpd日誌文件中的ssl_error_log
如果ssl日誌文件報錯如下:
[Thu Aug 01 11:35:18 2013] [warn] RSA server certificate wildcard CommonName (CN) `*.-----.nl' does NOT match server name!? [Thu Aug 01 11:35:18 2013] [debug] ssl_engine_init.c(846): Configuring RSA server private key [Thu Aug 01 11:35:18 2013] [error] Unable to configure RSA server private key [Thu Aug 01 11:35:18 2013] [error] SSL Library Error: 185073780 error:0B080074:x509 certificate routines:X509_check_private_key:key values mismatch
此問題可能是因爲server.key和server.crt不匹配導致,使用下列命令檢測兩個文件是否匹配,輸出結果相同則爲匹配:
openssl x509 -noout -modulus -in server.crt | openssl md5 openssl rsa -noout -modulus -in server.key | openssl md5
如果輸出結果匹配,檢測是否爲httpd故障,可見httpd日誌,另外如果認證鑰文件路徑錯誤,httpd啓動時會報錯。
本文出自 “一杯白開水” 博客,請務必保留此出處http://ultraera.blog.51cto.com/6640392/1663076