apache配置ssl證書

目的:在阿里雲ESC的apache服務器上部署申請的證書實現HTTPS訪問

步驟:

1,申請證書(爲阿里雲自動配發的證書)

2,在apache上部署

2.1,vim /usr/local/apache/conf/httpd.conf

  查看模塊項是否有並將其前面的#去掉

LoadModule ssl_module modules/mod_ssl.so

改爲

LoadModule ssl_module modules/mod_ssl.so

將# Secure (SSL/TLS) connections
#Include conf/extra/httpd-ssl.conf

改爲

Secure (SSL/TLS) connections

Include conf/extra/httpd-ssl.conf

2.2,vim /usr/local/apache/conf/extra/httpd-ssl.conf

增加如下項:

SSLHonorCipherOrder on

#<VirtualHost default:443>
<VirtualHost wxjy.peigubao.com:443>

General setup for the virtual host

DocumentRoot "/data/www/default"
ServerName wxjy.aaa.com
#ServerName localhost:443
#ServerAdmin [email protected]

ErrorLog "/usr/local/apache/logs/error_ssl_log"
TransferLog "/usr/local/apache/logs/access_ssl_log"

SSL Engine Switch:

Enable/Disable SSL for this virtual host.

SSLEngine on
#添加SSL 協議支持協議,去掉不安全的協議

SSLProtocol -all +TLSv1 +TLSv1.1 +TLSv1.2

修改加密套件如下

#SSLCipherSuite ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4
#SSLCipherSuite ECDHE-RSA-AES256-GCM-SHA384

SSLCipherSuite EECDH+AESGCM:EDH+AESGCM:AES256+EECDH:ECDHE-RSA-AES128-SHA:DHE-RSA-AES128-GCM-SHA256:AES256+EDH:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GC$

證書公鑰配置

SSLCertificateFile /usr/local/apache/cert/public.pem

證書私鑰配置

SSLCertificateKeyFile /usr/local/apache/cert/213997737720084.key

證書鏈配置,如果該屬性開頭有 '#'字符,請刪除掉

SSLCertificateChainFile /usr/local/apache/cert/chain.pem

</VirtualHost>

2.3, /usr/local/apache/bin/httpd -k restart

3,由於我這版本是apache2.4.10+openssl0.9.8,重啓時報錯提示協議TLSv1.1 TSLv1.2爲非法協議

解決辦法

3.1,升級openssl0.9.8到openssl1.0.1g

步驟:

wKiom1ilmNSxmtjfAAAffRgUzVk273.png-wh_50

spacer.gif3.2,之後配置

SSLProtocol -all +TLSv1 +TLSv1.1 +TLSv1.2

依然報警協議爲非法

項目域名只支持了TLSv1但是是始終不支持TLSv1.1和TLSv1.2,對蘋果測試不通過

報警
apache配置ssl證書

蘋果測試

apache配置ssl證書

3.3,在這糾結很久,後問了下項目維護的運維兄弟,他找了個辦法解決了問題,再次十分感謝

如下:

對apache2的模塊如果動態編譯通常可以使用 /path/apxs -c *.c來完成
但對 mod_ssl編譯是會有一些問題
如:
出現
Unrecognized SSL Toolkit!
是由於 HAVE_OPENSSL這個沒有define
需要增加 -DHAVE_OPENSSL
undefined symbol: ssl_cmd_SSLMutex

undefined symbol: X509_free
通產是由於靜態連接了 openssl的庫照成的(默認)。
需要使用 -lcrypto -lssl -ldl
命令如下:

使用 whereis openssl 命令獲取lib和include的路徑

然後在apache 源碼的modules/ssl文件夾下使用命令

/PATH/apxs -I/PATH/openssl/include -L/PATH/openssl/lib -c *.c -lcrypto -lssl -ldl

如下

/usr/local/apache/bin/apxs -i -a -D HAVE_OPENSSL=1 -I/usr/include/openssl/ -L/usr/local/ssl/lib/ -c *.c -lcrypto -lssl -ldl

openssl 編譯的時候需要增加 shared參數

在次重啓

/usr/local/apache/bin/httpd -k restart

沒有報錯
apache配置ssl證書

作者:1198553937 漫步者

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