温馨提示×

CentOS如何为Golang应用配置SSL证书

小樊
44
2025-11-27 18:03:57
栏目: 云计算

在CentOS上为Golang应用配置SSL证书,通常需要以下几个步骤:

1. 获取SSL证书

你可以从Let’s Encrypt免费获取SSL证书,或者购买商业证书。

使用Let’s Encrypt获取证书

  1. 安装Certbot

    sudo yum install epel-release
    sudo yum install certbot
    
  2. 获取证书

    sudo certbot certonly --standalone -d yourdomain.com -d www.yourdomain.com
    

    按照提示完成证书的获取和配置。

2. 配置Golang应用

假设你的Golang应用运行在一个HTTP服务器上,你可以使用http.Server结构体来配置SSL。

示例代码

package main

import (
    "log"
    "net/http"
)

func main() {
    http.HandleFunc("/", func(w http.ResponseWriter, r *http.Request) {
        w.Write([]byte("Hello, HTTPS!"))
    })

    server := &http.Server{
        Addr:      ":443",
        TLSConfig: &tls.Config{MinVersion: tls.VersionTLS12},
    }

    log.Println("Starting HTTPS server on :443")
    if err := server.ListenAndServeTLS("/etc/letsencrypt/live/yourdomain.com/fullchain.pem", "/etc/letsencrypt/live/yourdomain.com/privkey.pem"); err != nil {
        log.Fatalf("Failed to start HTTPS server: %v", err)
    }
}

3. 自动续期证书

Let’s Encrypt证书每90天需要续期一次。你可以使用Certbot的自动续期功能。

  1. 设置自动续期

    sudo systemctl enable certbot.service
    sudo systemctl start certbot.service
    
  2. 检查续期状态

    sudo certbot renew --dry-run
    

4. 配置防火墙

确保你的防火墙允许HTTPS流量(端口443)。

sudo firewall-cmd --permanent --zone=public --add-service=https
sudo firewall-cmd --reload

5. 测试配置

确保你的应用可以通过HTTPS访问,并且证书正确安装。

curl -k https://yourdomain.com

注意:-k选项用于忽略证书验证,仅用于测试目的。

通过以上步骤,你应该能够在CentOS上为你的Golang应用成功配置SSL证书。

0