前置知識(shí)推薦了解
HTTPS原理介紹以及證書簽名的申請(qǐng)配置 ( https://blog.weiyigeek.top/2019/10-21-10.html )




SSL與TLS協(xié)議原理和" />

国产成人精品无码青草_亚洲国产美女精品久久久久∴_欧美人与鲁交大毛片免费_国产果冻豆传媒麻婆精东

18143453325 在線咨詢 在線咨詢
18143453325 在線咨詢
所在位置: 首頁(yè) > 營(yíng)銷資訊 > 網(wǎng)站運(yùn)營(yíng) > 如何讓HTTPS站點(diǎn)更加安全? 這篇HTTPS安全加固配置最佳實(shí)踐指南就夠了

如何讓HTTPS站點(diǎn)更加安全? 這篇HTTPS安全加固配置最佳實(shí)踐指南就夠了

時(shí)間:2023-04-19 01:14:01 | 來(lái)源:網(wǎng)站運(yùn)營(yíng)

時(shí)間:2023-04-19 01:14:01 來(lái)源:網(wǎng)站運(yùn)營(yíng)

如何讓HTTPS站點(diǎn)更加安全? 這篇HTTPS安全加固配置最佳實(shí)踐指南就夠了:[TOC]




前置知識(shí)推薦了解
HTTPS原理介紹以及證書簽名的申請(qǐng)配置 ( https://blog.weiyigeek.top/2019/10-21-10.html )




SSL與TLS協(xié)議原理和證書簽名生成實(shí)踐指南 ( https://blog.weiyigeek.top/2019/10-21-12.html )




原文鏈接
HTTPS安全優(yōu)化配置最佳實(shí)踐指南簡(jiǎn)述 ( https://blog.weiyigeek.top/2022/4-6-11.html )








0x02 HTTPS安全加固指南




描述: 當(dāng)你的網(wǎng)站上了 HTTPS 以后,可否覺(jué)得網(wǎng)站已經(jīng)安全了,其實(shí)不然前面說(shuō)過(guò)想要部署TLS是非常容易,只需要證書與密鑰文件然后根據(jù)中間件的配置ssl方法進(jìn)行配置即可,默認(rèn)的配置通常不滿足https的安全需要,所以我們還需要進(jìn)一步著重在于 HTTPS 網(wǎng)站的 Header 的相關(guān)配置。




1.連接安全性和加密選擇




安全加固實(shí)踐










# 語(yǔ)法演示:Strict-Transport-Security: max-age=<expire-time>Strict-Transport-Security: max-age=<expire-time>; includeSubDomainsStrict-Transport-Security: max-age=<expire-time>; preload# 配置示例: 瀏覽器防止指定站點(diǎn)以及將來(lái)的子域名都采用 HTTPS,最大年齡為1年(31536000),同時(shí)還允許預(yù)加載(加快速度):Strict-Transport-Security: max-age=31536000; includeSubDomains; preload# Nginx# HSTS (ngx_http_headers_module is required) (63072000 seconds == 兩年)add_header Strict-Transport-Security "max-age=63072000; includeSubDomains; preload" always;








例如,瀏覽器連接到 https://weiyigeek.top,它存在這個(gè)頭。header 告訴瀏覽器,如果證書 key 匹配,或者在發(fā)出證書鏈中有一個(gè) key 匹配,那么在將來(lái)才會(huì)再次連接。其他的指令組合是可能的。它們都極大地減少了攻擊者在客戶端和合法主機(jī)之間模擬主機(jī)或攔截通信的可能性。



Public-Key-Pins: max-age=5184000; pin-sha256="+oZq/vo3Kcv0CQPjpdwyInqVXmLiobmUJ3FaDpD/U6c="; pin-sha256="47DEQpj8HBSa+/TImW+5JCeuQeRkm5NMpJWZG3hSuFU="


溫馨提示: 設(shè)置 HSTS header Strict-Transport-Security 長(zhǎng)的生命周期,即 max-age 的時(shí)間不能小于15552000,最好是半年及以上。
溫馨提示: 確定是否需要為您的站點(diǎn)使用 PKP, 如果要是使用它請(qǐng)注意在SSL/TLS密鑰需要更新時(shí)建立備份計(jì)劃, 優(yōu)先創(chuàng)建備份密鑰和離線存儲(chǔ)。













2.站點(diǎn)內(nèi)容安全(Content security)




安全加固實(shí)踐













一個(gè)理想的CSP策略是基于白名單的方法,不允許任何東西,除了明確允許的內(nèi)容,它還限制了 javascript 的來(lái)源和允許操作。



# 從限制性策略開(kāi)始在必要時(shí)放松。Content-Security-Policy: default-src 'none';# 現(xiàn)在讓我們?cè)试S自托管 scripts、images、CSS、fonts 和 AJAX,以及 jQuery CDN 托管腳本和 Google Analytics:Content-Security-Policy: default-src 'none'; script-src 'self' https://code.jquery.com https://www.google-analytics.com; img-src 'self' https://www.google-analytics.com; connect-src 'self'; font-src 'self'; style-src 'self';# 一個(gè)不那么嚴(yán)格的策略Content-Security-Policy: default-src 'self';# 更少的限制性策略,然后添加限制,非常不建議如此使用。Content-Security-Policy: default-src '*';








# HTTP header: 完全不允許使用 sameorigin 拒絕或允許同源框架的選項(xiàng)X-Frame-Options: deny# 該響應(yīng)頭可選值DENY:不能被嵌入到任何iframe或者frame中。SAMEORIGIN:頁(yè)面只能被本站頁(yè)面嵌入到iframe或者frame中ALLOW-FROM uri:只能被嵌入到指定域名的框架中# Nginx, 允許 music.163.com 放置在站點(diǎn)之中add_header X-Frame-Options ALLOW-FROM music.163.com;








# HTTP header:X-Xss-Protection: 1; block# Nginx:add_header X-XSS-Protection "1; mode=block";








# HTTP header:Cache-Control: public*# 可選參數(shù):其中的一個(gè) public,private,no-cache 或 no-store。








# HTTP header:X-Content-Type-Options: nosniff# Nginxadd_header X-Content-Type-Options nosniff;








# 完整性校驗(yàn),該文件的SHA384值<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.3/jquery.min.js" integrity="sha384-6ePHh72Rl3hKio4HiJ841psfsRJveeS+aLoaEf3BWfS+gTF0XdAqku2ka8VddikM"></script># 或者本地相對(duì)調(diào)用<script>window.jQuery || document.write('<script src="/jquery.min.js"><//script>')</script>








# 設(shè)置 iframe 的 sandbox 屬性,然后添加所需的權(quán)限。<iframe src="https://weiyigeek.top" sandbox="allow-same-origin allow-scripts"></script>











# 標(biāo)記所有 cookie 安全為HttpOnlySet-Cookie: Key=Value; path=/; secure; HttpOnly, Key2=Value2; secure; HttpOnly# 例如, Tomcat7 中進(jìn)行 HttpOnly 與 secure 配置# tomcat/conf/server.xml<Connector port="8080" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8443" secure="true" /># tomcat/conf/web.xml<session-config> <session-timeout>30</session-timeout> <cookie-config> <http-only>true</http-only> </cookie-config> </session-config>








# 防止搜索引擎顯示使用PHP生成的文件.add_header X-Robots-Tag noindex;# 假如一個(gè)提供.doc文件的網(wǎng)站,但由于特定的原因,不希望搜索引擎為該文件類型建立索引.location ~* /.(doc|docx|pdf)$ { add_header X-Robots-Tag noindex, noarchive, nosnippet;}


溫馨提示: 在Nginx中配置緩存策略非常簡(jiǎn)單, 我們只需要在指定的location規(guī)則下,加入類似于expires關(guān)鍵參數(shù)即可;













3.避免站點(diǎn)額外信息泄露




安全加固實(shí)踐






















4.避免Web服務(wù)器中間件脆弱性




安全加固實(shí)踐

















0x03 HTTPS安全與兼容性如何抉擇




描述: 很多網(wǎng)站HTTPS檢測(cè)評(píng)分都達(dá)到了A或者A+, 但在看檢測(cè)結(jié)果的時(shí)候發(fā)現(xiàn)類似于百度和淘寶這類大用戶群的網(wǎng)站居然沒(méi)有評(píng)級(jí)到A或者在使用的加密套件上有橙色的加密套件, 這是由于不同的業(yè)務(wù)側(cè)重點(diǎn)不同,針對(duì)于瀏覽業(yè)務(wù)不涉及重要敏感信息的系統(tǒng)往往會(huì)犧牲一點(diǎn)安全性獲取極致的兼容性。













溫馨提示: 如果要適配IE6這款瀏覽器,那么SSL協(xié)議就必須得支持SSL2和SSL3(會(huì)受到POODLE漏洞問(wèn)題影響), 所以除去CBC加密套件那就只剩下RC4系列的加密套件,實(shí)際上RC4也是不安全只是為了兼容某些老版瀏覽器的妥協(xié)。
溫馨提示: 如果要放棄IE6并適配兼容XP上的IE8這款瀏覽器,唯一比較安全的就是3DES系列的加密套件,這差不多少是一種較好的方式。




如果你的服務(wù)器需要支持像IE6這種古董級(jí)別的瀏覽器可以采用方式1, 而如果想在保證相對(duì)安全性的同時(shí)也具有一定的兼容性可以采用方式2, 如果業(yè)務(wù)比較敏感為保證其安全性,忽略掉其兼容性,建議采用方式3(隨著openssl版本迭代進(jìn)行最好的安全性進(jìn)行配置).




ssl_ciphers && ssl_protocols 在Nginx上配置示例
方式1.更好的兼容性(支持IE6老古董)




ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH;ssl_protocols SSLv3 TLSv1 TLSv1.1 TLSv1.2 TLSv1.3;


方式2.具有相對(duì)安全性和一定的兼容性(支持IE8~11)




# Nginxssl_ciphers EECDH+CHACHA20:EECDH+CHACHA20-draft:EECDH+AES128:RSA+AES128:EECDH+AES256:RSA+AES256:EECDH+3DES:RSA+3DES:!MD5;ssl_protocols TLSv1 TLSv1.1 TLSv1.2 TLSv1.3;# old configurationssl_protocols TLSv1 TLSv1.1 TLSv1.2 TLSv1.3;ssl_ciphers ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384:DHE-RSA-CHACHA20-POLY1305:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA256:ECDHE-ECDSA-AES128-SHA:ECDHE-RSA-AES128-SHA:ECDHE-ECDSA-AES256-SHA384:ECDHE-RSA-AES256-SHA384:ECDHE-ECDSA-AES256-SHA:ECDHE-RSA-AES256-SHA:DHE-RSA-AES128-SHA256:DHE-RSA-AES256-SHA256:AES128-GCM-SHA256:AES256-GCM-SHA384:AES128-SHA256:AES256-SHA256:AES128-SHA:AES256-SHA:DES-CBC3-SHA;ssl_prefer_server_ciphers on;


方式3.建議根據(jù)系統(tǒng)中openssl版本中加密套件進(jìn)行安全性配置,犧牲一定的兼容性。




ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDH:AES:EECDH+CHACHA20:EECDH+CHACHA20-draft:EECDH+AES128:RSA+AES128:EECDH+AES256:RSA+AES256:HIGH:!NULL:!aNULL:!eNULL:!EXPORT:!PSK:!ADH:!DES:!3DES:!MD5:!RC4;ssl_protocols TLSv1 TLSv1.1 TLSv1.2 TLSv1.3;


博主當(dāng)前配置




# Nginxssl_ciphers ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:ECDHE:ECDH:AES:HIGH:EECDH+CHACHA20:EECDH+CHACHA20-draft:EECDH+AES128:RSA+AES128:EECDH+AES256:RSA+AES256:EECDH+3DES:RSA+3DES:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384:!NULL:!aNULL:!eNULL:!EXPORT:!PSK:!ADH:!DH:!DES:!MD5:!RC4;# 以下密碼需要明確禁止使用!aNULL,不包含身份驗(yàn)證的DH密碼,可能被中間人攻擊!eNULL,不采取密鑰交換,也就是明文傳輸!EXPORT,美國(guó)當(dāng)年限制加密產(chǎn)品出口遺留的弱密碼!MD5,!RC4,!DES,這些密碼已被證明攻破難度低


溫馨提示: 我們可以訪問(wèn)mozilla公司提供的 SSL Configuration Generator 參考進(jìn)行相應(yīng)的配置參考(https://ssl-config.mozilla.org/),例如我們生成具有多種客戶端的通用服務(wù)器Nginx SSL配置。




# generated 2022-04-10, Mozilla Guideline v5.6, nginx 1.26.1, OpenSSL 1.1.1n, intermediate configuration# https://ssl-config.mozilla.org/#server=nginx&version=1.26.1&config=intermediate&openssl=1.1.1n&guideline=5.6server { listen 80 default_server; listen [::]:80 default_server; location / { return 301 https://$host$request_uri; }}server { listen 443 ssl http2; listen [::]:443 ssl http2; ssl_certificate /path/to/signed_cert_plus_intermediates; ssl_certificate_key /path/to/private_key; ssl_session_timeout 1d; ssl_session_cache shared:MozSSL:10m; # about 40000 sessions ssl_session_tickets off; # curl https://ssl-config.mozilla.org/ffdhe2048.txt > /path/to/dhparam ssl_dhparam /path/to/dhparam; # intermediate configuration ssl_protocols TLSv1.2 TLSv1.3; ssl_ciphers ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384; ssl_prefer_server_ciphers off; # HSTS (ngx_http_headers_module is required) (63072000 seconds) add_header Strict-Transport-Security "max-age=63072000" always; # OCSP stapling ssl_stapling on; ssl_stapling_verify on; # verify chain of trust of OCSP response using Root CA and Intermediate certs ssl_trusted_certificate /path/to/root_CA_cert_plus_intermediates; # replace with the IP address of your resolver resolver 127.0.0.1;}











溫馨提示: 我們可以采用openssl ciphers命令查看套件支持的協(xié)議。




openssl ciphers -V 'ECDHE-RSA-AES128-GCM-SHA256:ECDH:AES:EECDH+CHACHA20:EECDH+CHACHA20-draft:EECDH+AES128:RSA+AES128:EECDH+AES256:RSA+AES256:EECDH+3DES:RSA+3DES:CAMELLIA:HIGH:!NULL:!aNULL:!eNULL:!EXPORT:!PSK:!ADH:!DES:!MD5:!RC4' | column -t






0x0n 入坑出坑




1.通過(guò)https證書安全合規(guī)檢測(cè)發(fā)現(xiàn)缺少HTTP Strict-Transport-Security響應(yīng)頭




解決辦法: 例如,此處在 Nginx 服務(wù)器配置 server 段中添加如下內(nèi)容 add_header Strict-Transport-Security "max-age=15768000;includeSubDomains;preload"; 以便于讓瀏覽器響應(yīng)并支持HSTS。













2.利用 myssl 站點(diǎn)的HTTPS安全報(bào)告工具檢測(cè),出現(xiàn)證書鏈不完整降級(jí)為B提示




問(wèn)題描述:













缺少證書鏈的問(wèn)題和解決辦法: 修復(fù)的辦法很簡(jiǎn)單就是在部署證書的時(shí)候,把那張缺失的CA證書一并部署。目前一般的證書簽發(fā)機(jī)構(gòu)在簽發(fā)證書的時(shí)候會(huì)把該CA證書一并打包,如果你沒(méi)有也不同慌,我們可以使用MySSL提供的工具(https://myssl.com/chain_download.html)補(bǔ)全證書鏈。




# 下載證書鏈curl https://myssl.com/api/v1/get_chain/5FFAFB3E5757A13292C4E3C0A045257E915D27DA > full_chain_ecc.crt# 在 Nginx 中配置證書鏈ssl_certificate /app/ssl/weiyigeek.top_ecc/full_chain_ecc.crt;ssl_certificate_key /app/ssl/weiyigeek.top_ecc/weiyigeek.top.key;








> 本文章來(lái)源 [我的Blog站點(diǎn)](https://blog.weiyigeek.top) 或 [WeiyiGeek 公眾賬號(hào)](https://www.weiyigeek.top/img/wechat-search.png) 以及 [我的BiliBili專欄](https://space.bilibili.com/385802642) (`技術(shù)交流、友鏈交換請(qǐng)郵我喲`),
> 歡迎各位志同道合的朋友一起學(xué)習(xí)交流,如文章有誤請(qǐng)留下您寶貴的知識(shí)建議,通過(guò)郵箱【[master#weiyigeek.top](mailto:master#weiyigeek.top)】聯(lián)系我喲!

關(guān)鍵詞:安全,配置,實(shí)踐,指南,更加

74
73
25
news

版權(quán)所有? 億企邦 1997-2025 保留一切法律許可權(quán)利。

為了最佳展示效果,本站不支持IE9及以下版本的瀏覽器,建議您使用谷歌Chrome瀏覽器。 點(diǎn)擊下載Chrome瀏覽器
關(guān)閉