【问题标题】:A non-ACME 400 HTTP error occured on request请求时发生非 ACME 400 HTTP 错误
【发布时间】:2020-05-08 09:55:12
【问题描述】:

尝试将 acmephp 库集成到我的项目中,但是当我尝试为域请求授权时不断收到此错误

请求“POST https://acme-v02.api.letsencrypt.org/acme/new-order”时出现非 ACME 400 HTTP 错误(响应正文:“(截断...)”)

这是客户端初始化代码

public function registerWebsite()
{
    try {
        $secureHttpClientFactory = new SecureHttpClientFactory(
            new GuzzleHttpClient(),
            new Base64SafeEncoder(),
            new KeyParser(),
            new DataSigner(),
            new ServerErrorHandler()
        );

        $acmeKeyPath = storage_path('acme-keys');
        if (!file_exists($acmeKeyPath)) {
            mkdir($acmeKeyPath, 0700, true);
        }

        $publicKeyPath = $acmeKeyPath . '/account.pub.pem';
        $privateKeyPath = $acmeKeyPath . '/account.pem';

        if (!file_exists($privateKeyPath)) {
            $keyPairGenerator = new KeyPairGenerator();
            $keyPair = $keyPairGenerator->generateKeyPair();

            file_put_contents($publicKeyPath, $keyPair->getPublicKey()->getPEM());
            file_put_contents($privateKeyPath, $keyPair->getPrivateKey()->getPEM());
        } else {
            $publicKey = new PublicKey(file_get_contents($publicKeyPath));
            $privateKey = new PrivateKey(file_get_contents($privateKeyPath));

            $keyPair = new KeyPair($publicKey, $privateKey);
        }

        $secureHttpClient = $secureHttpClientFactory->createSecureHttpClient($keyPair);
        $acmeClient = new AcmeClient($secureHttpClient, 'https://acme-staging-v02.api.letsencrypt.org/directory');
        $registerResponse = $acmeClient->registerAccount(null, 'kaladakienka@gmail.com');
        $authorizationChallenges = $acmeClient->requestAuthorization('http://ssl-ops-staging.thehuddle.nl/');
        dd($authorizationChallenges);
    } catch (\Exception $ex) {
        dd($ex->getMessage());
    }
}

【问题讨论】:

    标签: lets-encrypt acme


    【解决方案1】:

    想通了。

    $acmeClient->requestAuthorization('http://ssl-ops-staging.thehuddle.nl/') 
    

    应该是

    $acmeClient->requestAuthorization('ssl-ops-staging.thehuddle.nl');
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-07-21
      • 2016-11-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多