在CentOS系統下為Golang應用程序配置SSL證書,可以按照以下步驟進行:
獲取SSL證書:首先,你需要獲取一個SSL證書。你可以從證書頒發機構(CA)購買一個證書,或者使用Let’s Encrypt免費生成一個證書。
安裝Certbot:Certbot是一個自動化的工具,用于獲取和部署Let’s Encrypt SSL證書。在CentOS上安裝Certbot,可以使用以下命令:
sudo yum install epel-release
sudo yum install certbot
yourdomain.com
替換為你的域名:sudo certbot certonly --standalone -d yourdomain.com
Certbot會創建一個新的目錄(默認為/etc/letsencrypt/live/yourdomain.com
),其中包含你的證書文件(fullchain.pem
)和私鑰文件(privkey.pem
)。
http.ListenAndServeTLS
函數配置SSL證書。以下是一個簡單的示例:package main
import (
"fmt"
"log"
"net/http"
)
func main() {
http.HandleFunc("/", func(w http.ResponseWriter, r *http.Request) {
fmt.Fprintf(w, "Hello, SSL!")
})
certFile := "/etc/letsencrypt/live/yourdomain.com/fullchain.pem"
keyFile := "/etc/letsencrypt/live/yourdomain.com/privkey.pem"
log.Printf("Starting server on :443")
err := http.ListenAndServeTLS(":443", certFile, keyFile, nil)
if err != nil {
log.Fatal(err)
}
}
將certFile
和keyFile
變量設置為你的證書文件和私鑰文件的路徑。
重啟Golang應用程序:保存更改并重啟你的Golang應用程序以應用新的SSL配置。
更新證書:Certbot證書的有效期為90天。為了自動更新證書,你可以使用Certbot的renew
命令:
sudo certbot renew --dry-run
如果沒有錯誤,運行以下命令以實際更新證書:
sudo certbot renew
certbot renew
命令。使用以下命令打開crontab編輯器:sudo crontab -e
添加以下行以每天檢查證書更新:
0 0 * * * certbot renew --quiet && systemctl reload your-golang-app.service
將your-golang-app.service
替換為你的Golang應用程序的systemd服務名稱。
現在,你的Golang應用程序已經配置了SSL證書,并可以安全地處理HTTPS請求。