Apache + SSL搭建Linux證書服務器

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

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章