centos

CentOS下Golang如何配置SSL证书

小樊
39
2025-06-20 08:06:11
栏目: 云计算

在CentOS系统下为Golang应用程序配置SSL证书,可以按照以下步骤进行:

  1. 获取SSL证书:首先,你需要获取一个SSL证书。你可以从证书颁发机构(CA)购买一个证书,或者使用Let’s Encrypt免费生成一个证书。

  2. 安装Certbot:Certbot是一个自动化的工具,用于获取和部署Let’s Encrypt SSL证书。在CentOS上安装Certbot,可以使用以下命令:

sudo yum install epel-release
sudo yum install certbot
  1. 获取证书:使用Certbot获取SSL证书。运行以下命令,将yourdomain.com替换为你的域名:
sudo certbot certonly --standalone -d yourdomain.com

Certbot会创建一个新的目录(默认为/etc/letsencrypt/live/yourdomain.com),其中包含你的证书文件(fullchain.pem)和私钥文件(privkey.pem)。

  1. 配置Golang应用程序:在你的Golang应用程序中,使用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)
	}
}

certFilekeyFile变量设置为你的证书文件和私钥文件的路径。

  1. 重启Golang应用程序:保存更改并重启你的Golang应用程序以应用新的SSL配置。

  2. 更新证书:Certbot证书的有效期为90天。为了自动更新证书,你可以使用Certbot的renew命令:

sudo certbot renew --dry-run

如果没有错误,运行以下命令以实际更新证书:

sudo certbot renew
  1. 设置定时任务:为了确保证书始终有效,你可以设置一个定时任务(cron job)来自动执行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请求。

0
看了该问题的人还看了