原文閱讀:Apache 部署SSL數字證書及安全性設置php
Apache做爲最多見的一種Web服務器,其普及度、易用性及穩定性都很是高,Apache也能夠部署基於HTTPS的安全Web服務器,本文介紹如何在Apache上部署簽發的SSL數字證書。html
私鑰一般是在準備CSR證書請求文件時生成,使用openSSL生成存在CSR文件的同級目錄中 - 生成CSR證書請求文件 ,使用在線工具會將隨機生成的私鑰+CSR發送到郵箱中,使用IIS生成CSR要求在完成證書請求後提取私鑰 - SSL/TLS多種證書類型的轉換。將CSR提交給infiniSign申請證書,將私鑰自行妥善保管。nginx
簽發證書也就是通過CA驗證過域名或者企業信息後所簽發的域名證書,例如Web服務器會使用 www.yourdomain.com 做爲主要網站,那麼該證書驗證的域名就是 www.yourdomain.com ,經過CA簽發的證書須要購買數字證書,最低¥39/年的Comodo PositiveSSL就是一款的入門級SSL數字證書,當即前往購買shell
一個完整的證書鏈應該由證書 + 中級證書A + 中級證書B + ... +根證書構成,因此一般,由CA簽發的證書壓縮包中會有1個或者多箇中級證書,另外多家CA的中級證書在官網上有下載,關於合併中級證書請參考:SSL證書鏈不完整致使瀏覽器不受信任apache
將第一部的私鑰 server.key、證書 server.crt、證書鏈 server-chain.crt 三個文件放入服務器中任意目錄,編輯/etc/httpd/conf.d/ssl.conf
文件,配置如下代碼(自行修改路徑)瀏覽器
# 簽發證書 SSLCertificateFile /etc/pki/tls/certs/server.crt # 私鑰 SSLCertificateKeyFile /etc/pki/tls/private/server.key # 合併後的證書鏈 SSLCertificateChainFile /etc/pki/tls/certs/server-chain.crt
保存後重啓httpd服務,使SSL配置生效安全
和Apache的80端口的Web虛擬主機配置相似,將三個文件放入指定目錄後,編輯/etc/httpd/conf.d/ssl.conf
文件,配置如下代碼(自行修改路徑)服務器
<VirtualHost *:443> SSLEngine on SSLCertificateFile /etc/pki/tls/certs/server.crt SSLCertificateKeyFile /etc/pki/tls/private/server.key SSLCertificateChainFile /etc/pki/tls/certs/server-chain.crt <Directory /var/www/html/subhost> AllowOverride All </Directory> ServerAdmin [email@example.com](mailto:email@example.com) DocumentRoot /var/www/html/subhost ServerName www.yourdomain.com </VirtualHost>
目前已知的SSLv2和SSLv3安全漏洞須要關閉,可以使用在線工具檢查服務器部署中的SSLv2和SSLv3是否關閉,關閉方法以下:app
Apache 2.2.22之前版本:SSLProtocol TLSv1
Apache 2.2.23及之後版本:SSLProtocol ALL -SSLv2 -SSLv3
Apache + mod_nss:NSSProtocol TLSv1.0,TLSv1.1
dom
推薦的簡單配置(知足蘋果ATS對SSL/TLS的安全檢測要求)
SSLCipherSuite ECDH:AESGCM:HIGH:!RC4:!DH:!MD5:!aNULL:!eNULL;
兼容性配置
SSLCipherSuite ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:DHE-DSS-AES128-GCM-SHA256:kEDH+AESGCM:ECDHE-RSA-AES128-SHA256:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA:ECDHE-ECDSA-AES128-SHA:ECDHE-RSA-AES256-SHA384:ECDHE-ECDSA-AES256-SHA384:ECDHE-RSA-AES256-SHA:ECDHE-ECDSA-AES256-SHA:DHE-RSA-AES128-SHA256:DHE-RSA-AES128-SHA:DHE-DSS-AES128-SHA256:DHE-RSA-AES256-SHA256:DHE-DSS-AES256-SHA:DHE-RSA-AES256-SHA:AES128-GCM-SHA256:AES256-GCM-SHA384:AES128-SHA256:AES256-SHA256:AES128-SHA:AES256-SHA:AES:CAMELLIA:DES-CBC3-SHA:!aNULL:!eNULL:!EXPORT:!DES:!RC4:!MD5:!PSK:!aECDH:!EDH-DSS-DES-CBC3-SHA:!EDH-RSA-DES-CBC3-SHA:!KRB5-DES-CBC3-SHA SSLHonorCipherOrder on
參考文章:
https://blog.longwin.com.tw/2014/11/apache2-nginx-disabled-sslv2-sslv3-2014/