Что вызывает urn: acme: error: unauthorized 403 error в acme / autocert golang? - PullRequest
2 голосов
/ 20 июня 2020

Полное сообщение об ошибке:

403 urn: acme: error: unauthorized: создание учетной записи на ACMEv1 отключено. Обновите свой клиент ACME до версии, которая поддерживает ACMEv2 / RF C 8555. Подробнее см. https://community.letsencrypt.org/t/end-of-life-plan-for-acmev1/88430

И я погуглил это и просмотрел эту ссылку, но я просто использую:

golang.org/x/crypto/acme/autocert

пакет обычным способом:

package main

import (
    "crypto/tls"
    "net/http"

    "github.com/gin-gonic/gin"
    "golang.org/x/crypto/acme/autocert"
)

func main() {

    router := gin.Default()
    hosts := []string{"yourdomain.com"}
    certManager := autocert.Manager{
        Prompt:     autocert.AcceptTOS,
        HostPolicy: autocert.HostWhitelist(hosts...),
        Cache:      autocert.DirCache("/certs"),
    }

    server := &http.Server{
        Addr:    ":https",
        Handler: router,
        TLSConfig: &tls.Config{
            GetCertificate: certManager.GetCertificate,
        },
    }

    server.ListenAndServeTLS("", "")
}

На самом деле этот код работает и отлично работает для последние 6 месяцев. Но как раз сегодня я переключил сервер, на котором он был включен, и теперь получил сообщение выше.

Я попытался получить самую последнюю версию golang, но все та же проблема.

Я изменил свой DNS для моих хостов на IP этого нового сервера и имя хоста сервера правильное.

Насколько я могу судить, он на 100% идентичен предыдущему рабочему серверу, но с новым IP.

Действительно ли acme / autocert golang устарел и не использует ACMEv2?

1 Ответ

3 голосов
/ 24 июня 2020

Этот оператор:

Фактически, этот код работает и работает нормально последние 6 месяцев. Но только сегодня я переключил сервер, на котором он был включен, и теперь получаю сообщение выше.

Может указывать на то, что вы строите против более старой версии golang.org/x/crypto - проверьте свой файл go.mod и убедитесь, что вы используете довольно свежую версию. Недавно я завершил проект, в котором используется почти идентичный код. require в моем go.mod выглядит так:

golang.org/x/crypto v0.0.0-20200602180216-279210d13fed
...