解決 Https 站點請求 Http 介面服務後報 the content must be served over HTTPS 錯誤的問題

来源:https://www.cnblogs.com/fx67ll/archive/2023/07/18/nginx-https-api.html
-Advertisement-
Play Games

之前將自己所有的 `Http` 站點全部更新為 `Https` 站點,但是在請求後臺介面服務的時候還是 `Http` 請求,導致部署之後,直接在控制台報 `This request has been blocked; the content must be served over HTTPS;` 的... ...


問題分析

之前將自己所有的 Http 站點全部更新為 Https 站點,但是在請求後臺介面服務的時候還是 Http 請求,導致部署之後,直接在控制台報 This request has been blocked; the content must be served over HTTPS; 的錯誤

解決思路

因為我不想耗費精力,將所有的後臺介面服務也更新為支持 Https 請求,所以訪問了一些資料之後,發現了一個非常巧妙的思路,省時省力解決這個問題。

那就是直接使用Nginx將後臺介面服務的 http 請求地址代理到前端 Https 站點的一個目錄下,經過Nginx這一層將後臺介面服務的 Http 請求包裝成 Https 請求

舉個慄子

  1. 比如你之前的後臺介面服務請求地址是:http://bbb.com(甚至你的請求地址是ip+埠都沒關係)
  2. 然後你的前端站點部署的功能變數名稱是:https://aaa.com
  3. 你可以通過修改Nginx配置,將後臺介面服務的地址轉發到前端功能變數名稱地址的一個目錄下,比如:https://aaa.com/bbb-api
  4. 這樣就可以讓Nginx幫你完美解決 http 請求無法訪問 https 站點的問題~~~牛逼o( ̄▽ ̄)d

Nginx配置示例

這裡沒有放出全部的配置示例,因為只需要修改前端功能變數名稱中443埠的監聽配置即可

server
{
	listen 443 ssl;
	server_name aaa.com;
	
	ssl_certificate               /etc/ssl/aaa.com.crt;
	ssl_certificate_key           /etc/ssl/aaa.com.key;
	ssl_protocols                 TLSv1.1 TLSv1.2 TLSv1.3;
	ssl_ciphers                   ECDHE-RSA-AES128-GCM-SHA256:HIGH:!aNULL:!MD5:!RC4:!DHE;
	ssl_prefer_server_ciphers     on;
	ssl_session_cache             shared:SSL:1m;
	ssl_session_timeout           10m;
	
	# 這裡是前端https站點的配置
	location / {
		proxy_pass http://ip:埠;
	}
	
	# 這裡是轉發到另一個後臺http請求的配置,也可以直接用ip+埠
	location /bbb-api/ {
		proxy_pass http://bbb.com/;
	}
}

我是 fx67ll.com,如果您發現本文有什麼錯誤,歡迎在評論區討論指正,感謝您的閱讀!
如果您喜歡這篇文章,歡迎訪問我的 本文github倉庫地址,為我點一顆Star,Thanks~

您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • ###內置日誌用法: 1. 引入**Microsoft.Extensions.Logging**命名空間:用於定義和實現日誌記錄功能 2. ILogger介面 a. 內置日誌系統的主要介面,用於記錄日誌信息,可以通過一來註入將ILogger實例註入到記錄日誌的類中,並使用它來記錄不同級別的日誌消息 ...
  • # 什麼?博客園主題比我的個人博客好看?😮 # 夢開始的地方🛸 最近逛博客園,發現我的園子還挺好看,但是還不夠好看,所以通過我百度發現SimpleMemory主題還可以繼續添加新的東西,當然這些東西不一定非得用SimpleMemory主題才行,但是搭配SimpleMemory主題是真的好看呀(比 ...
  • 前段時間小編檢查同事代碼,發現居然寫的太複雜看不太懂,代碼命名不規範,重覆冗長代碼一堆,這時候就可以通過重構來改進代碼的質量。代碼重構是提高代碼質量和可維護性的關鍵過程,它旨在通過優化代碼結構和設計來提高代碼的可讀性、可理解性和可擴展性。本文講述在C#中重構代碼的幾個案例,供大家參考。 **1、命名 ...
  • ## 一:背景 ### 1. 講故事 前幾天寫了一篇 `如何洞察 .NET程式 非托管句柄泄露` 的文章,文中使用 WinDbg 的 `!htrace` 命令實現了句柄泄露的洞察,在文末我也說了,WinDbg 是以侵入式的方式解決了這個問題,在生產環境中大多數情況下是不能走附加進程的模式,所以這也是 ...
  • 文章代碼分析基於linux-5.19.13,架構基於aarch64(ARM64)。 # 1. 前言 複雜IC內部有很多具有獨立功能的硬體模塊,例如CPU cores、GPU cores、USB控制器、MMC控制器、等等,出於功耗、穩定性等方面的考慮,有些IC在內部為這些硬體模塊設計了複位信號(res ...
  • 以下內容為本人的學習筆記,如需要轉載,請聲明原文鏈接[ 微信公眾號「ENG八戒」](https://mp.weixin.qq.com/s/w8YV_TUb4QwsgChu3AspHg)[https://mp.weixin.qq.com/s/w8YV\_TUb4QwsgChu3AspHg](https ...
  • Atom N2600, N2800 的某些舊型號機器, 安裝 Ubuntu 時在安裝界面選擇安裝後, 啟動過程中會卡住, 或者數秒即黑屏, 再無反應. 這個問題對於Debian系的其他發行版 Lubuntu, Linux Mint, Debian 都一樣, 但是用Win PE盤可以正常啟動. 經各種... ...
  • ## 文件操作和用戶 ### 複製移動和刪除 在Windows中我們可以通過快捷鍵 ctrl + c 複製,ctrl + v 粘貼,在 linux 中需要使用命令。 #### 複製移動 `cp` 就是 copy 的意思。請看示例: ```javascript // 將 a.txt 複製一份,重命名為 ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...