」工欲善其事,必先利其器。「—孔子《論語.錄靈公》
首頁 > 程式設計 > 如何使用非標準憑證檔案在Go Web伺服器上建立HTTPS?

如何使用非標準憑證檔案在Go Web伺服器上建立HTTPS?

發佈於2024-12-21
瀏覽:770

How to Establish HTTPS on a Go Web Server Using Non-Standard Certificate Files?

如何使用非標準憑證檔案在 Go Web 伺服器上建立 HTTPS

提供的文件建議連接三個 .pem 檔案。但是,如果您沒有這些文件,以下是如何使用您擁有的證書文件設定HTTPS:

組合中間證書:

雖然Go 通常需要一個串聯的證書文件,其他平台僅儲存根憑證。為了確保相容性,請連接中間憑證:

cat website.com.ca-crt website.com.ca-bundle > website.com.full-cert.crt

Setting Go中開啟HTTPS:

使用net/http/ListenAndServeTLS設定HTTPS:

import (
    "fmt"
    "log"
    "net/http"
)

func handler(w http.ResponseWriter, r *http.Request) {
    fmt.Fprintf(w, "Hello, %q", r.URL.Path[1:])
}

func main() {
    http.HandleFunc("/", handler)
    log.Printf("Listening on port 10443. Visit https://127.0.0.1:10443/")
    err := http.ListenAndServeTLS(":10443", "website.com.full-cert.crt", "private-key.pem", nil)
    log.Fatal(err)
}

附加說明:

需要中間憑證才能在客戶端和伺服器之間建立信任。使用完整的憑證檔案可確保與所有瀏覽器和裝置的相容性。

有關組合證書的更多信息,請參閱此資源:https://kb.wisc.edu/page.php?id=18923

最新教學 更多>
  • 如何在 PHP 中求和日期間隔?
    如何在 PHP 中求和日期間隔?
    在PHP 中添加日期間隔在PHP 中,我們可能會遇到需要添加兩個或多個日期間隔來計算以小時和分鐘為單位的總持續時間的情況。要實現此總和,我們可以按照以下步驟操作:為每個時間間隔建立 DateTime 物件。 使用 diff() 方法計算每對物件之間的差異。 $a = new DateTime('14...
    程式設計 發佈於2024-12-21
  • 如何使用 jQuery 檢索“data-id”屬性值?
    如何使用 jQuery 檢索“data-id”屬性值?
    使用jQuery 存取data-id 屬性使用jQuery Quicksand 外掛程式時,通常需要檢索被點選元素的「data-id」屬性將資訊傳遞到各種Web 服務。以下介紹如何有效取得該屬性值:'data-id'屬性可以使用jQuery中的.attr()方法來存取。語法如下:$(...
    程式設計 發佈於2024-12-21
  • 如何透過一次查詢高效刪除多個MySQL表中的資料?
    如何透過一次查詢高效刪除多個MySQL表中的資料?
    在MySQL 中使用單一查詢從多個表中刪除資料當處理由公共欄位關聯的多個表時,可能需要刪除有關使用者的信息同時從所有表中。此查詢不是執行多個 DELETE 語句,而是探索在單一查詢中執行刪除的可能性。 建議的查詢涉及使用以分號分隔的多個 DELETE 語句:DELETE FROM table1 WH...
    程式設計 發佈於2024-12-21
  • 如何使用 Intent.putExtra() 在 Activity 之間傳送整數陣列?
    如何使用 Intent.putExtra() 在 Activity 之間傳送整數陣列?
    使用 Intent.putExtra() 發送數組在 Activity 之間傳輸資料時,可能需要傳遞數組等複雜的資料結構。本文探討如何使用 Intent.putExtra() 有效地將整數陣列從​​一個活動 (A) 傳送到另一個活動 (B)。 問題:In活動 A 中,初始化了一個整數數組,並打算將其...
    程式設計 發佈於2024-12-21
  • 如何強制瀏覽器刷新動態圖像以顯示更新?
    如何強制瀏覽器刷新動態圖像以顯示更新?
    使用Cachebreaker 進行動態影像刷新存取每次載入時提供新影像的動態影像來源時,強制刷新至關重要在網頁上顯示更新後的圖像。 在背景載入新映像並嘗試取代頁面上的現有映像時會出現此問題。儘管加載了新圖像,但在刷新頁面之前它可能不會顯示。 要解決此問題,可以將快取破壞器附加到映像URL 的末尾:n...
    程式設計 發佈於2024-12-21
  • 如何可靠地檢查 JavaScript 中特定類別是否存在?
    如何可靠地檢查 JavaScript 中特定類別是否存在?
    在確定 JavaScript 中元素類別的存在檢查元素的類別屬性時,通常需要驗證它是否包含特定類別。提供的程式碼利用 switch 語句來檢查元素的確切類別值,但此方法無法偵測部分匹配。 要解決此限制,請考慮使用 element.classList .contains 方法。此方法接受類別名稱作為參...
    程式設計 發佈於2024-12-21
  • 如何在 React 渲染函數中有效使用非同步呼叫?
    如何在 React 渲染函數中有效使用非同步呼叫?
    在React 渲染函數中使用Async/Await:另一種方法React 應用程式中經常會遇到非同步編程,特別是在處理外部事務時資料來源。然而,直接在 React 的 render 函數中使用 async 和 wait 可能會導致意外的結果。 為了在 React 中有效地合併非同步調用,常見的方法是...
    程式設計 發佈於2024-12-21
  • 插入資料時如何修復「常規錯誤:2006 MySQL 伺服器已消失」?
    插入資料時如何修復「常規錯誤:2006 MySQL 伺服器已消失」?
    插入記錄時如何解決「一般錯誤:2006 MySQL 伺服器已消失」介紹:將資料插入MySQL 資料庫有時會導致錯誤「一般錯誤:2006 MySQL 伺服器已消失」。當與伺服器的連線遺失時會出現此錯誤,通常是由於 MySQL 配置中的兩個變數之一所致。 解決方案:解決此錯誤的關鍵是調整wait_tim...
    程式設計 發佈於2024-12-21
  • 如何使用 JavaScript 按日期鍵對物件陣列進行排序?
    如何使用 JavaScript 按日期鍵對物件陣列進行排序?
    使用JavaScript 按日期鍵對物件陣列進行排序根據特定日期值鍵對物件陣列進行排序是一項常見任務在JavaScript 程式設計中。在這種情況下,我們需要透過「updated_at」鍵對物件陣列進行排序,該鍵表示日期和時間。 實現此目的的最有效方法是使用 Array.sort() 方法與比較函數...
    程式設計 發佈於2024-12-21
  • 如何實現錨鏈接平滑滾動?
    如何實現錨鏈接平滑滾動?
    在點擊錨連結時平滑滾動使用錨連結導航網頁時,使用者期望無縫過渡到目標部分。然而,預設的滾動行為可能會很突然。本文探討了在點擊錨連結時實現平滑滾動的技術。 本機支援Chrome 和 Firefox 等瀏覽器引入了對平滑滾動的本機支援。這是透過捲動到視圖時使用值為「smooth」的「behavior」屬...
    程式設計 發佈於2024-12-21
  • 如何在 PHP 中組合兩個關聯數組,同時保留唯一 ID 並處理重複名稱?
    如何在 PHP 中組合兩個關聯數組,同時保留唯一 ID 並處理重複名稱?
    在 PHP 中組合關聯數組在 PHP 中,將兩個關聯數組組合成一個數組是常見任務。考慮以下請求:問題描述:提供的代碼定義了兩個關聯數組,$array1 和 $array2。目標是建立一個新陣列 $array3,它合併兩個陣列中的所有鍵值對。 此外,提供的陣列具有唯一的 ID,而名稱可能重疊。要求是建...
    程式設計 發佈於2024-12-21
  • 如何在 C++ 中產生隨機字母數字字串?
    如何在 C++ 中產生隨機字母數字字串?
    在C 中產生隨機字母數字字串創建由字母數字字元組成的隨機字串是程式設計中的一個常見任務。在 C 中,有多種方法可以實現此目的,每種方法都有其優點和限制。 一個簡單的方法是利用查找表和 rand() 函數在表中產生隨機索引。這是一個範例:#include <ctime> #include ...
    程式設計 發佈於2024-12-21
  • Go 結構中的匿名介面如何增強程式碼彈性?
    Go 結構中的匿名介面如何增強程式碼彈性?
    理解結構體中的匿名介面結構體中的匿名介面的概念可能會令人困惑,尤其是在Go 編程的上下文中。以下是它的含義及其工作原理:在提供的示例中,反向結構嵌入了一個名為 Interface 的匿名接口,該接口在 sort 包中定義。這意味著反向結構有效地「採用」了介面的方法。 匿名接口的好處透過嵌入匿名接口,...
    程式設計 發佈於2024-12-21
  • 如何在 Anaconda 環境中使用 Pip 正確安裝軟體套件?
    如何在 Anaconda 環境中使用 Pip 正確安裝軟體套件?
    在 Anaconda 環境中使用 Pip 安裝軟體包創建和啟動 conda 環境允許為特定專案進行獨立的 Python 安裝。但是,使用者在 Anaconda 環境中嘗試使用 pip 安裝軟體包時可能會遇到問題。 一個常見問題是 pip 嘗試將軟體包安裝到系統範圍的 Python 安裝而不是活動環境...
    程式設計 發佈於2024-12-21
  • 如何確保我的 Java JFileChooser 始終出現在前面?
    如何確保我的 Java JFileChooser 始終出現在前面?
    將JFileChooser帶到所有Windows的最前面在使用Java的JFileChooser選擇文件時,您可能會遇到文件選擇器出現在其他視窗後面的情況,需要您最小化他們訪問它。這可能是一個令人沮喪的障礙,尤其是在測試期間。 此行為的原因在於 showOpenDialog() 的 API,它引用了...
    程式設計 發佈於2024-12-21

免責聲明: 提供的所有資源部分來自互聯網,如果有侵犯您的版權或其他權益,請說明詳細緣由並提供版權或權益證明然後發到郵箱:[email protected] 我們會在第一時間內為您處理。

Copyright© 2022 湘ICP备2022001581号-3