繁体   English   中英

为 AWS websocket API 网关使用自定义域时出现证书错误(使用 CloudFormation)

[英]Certificate errors when using a custom domain for an AWS websocket API Gateway (using CloudFormation)

我在为 AWS 中的 websocket API 网关设置自定义域时遇到了一些问题。 我不断收到证书错误。 我已经有证书设置和一些云形成脚本。 那个样子没错一切都正确部署,但我不断收到有关证书的错误。

$ wscat -c ws.example.com
error: Hostname/IP does not match certificate's altnames: Host: ws.example.com. is not in the cert's altnames: DNS:*.execute-api.us-east-1.amazonaws.com

我检查了它返回的证书,序列号与我在 ACM 中创建的证书不匹配。

这是我的 CloudFormation 脚本:

  WebsocketApi:
    Type: AWS::ApiGatewayV2::Api
    Properties:
      Name: !Sub ${Environment}-ips-ws-api
      ProtocolType: WEBSOCKET
      RouteSelectionExpression: $request.body.action
      ApiKeySelectionExpression: $request.header.x-api-key

  WebsocketStage:
    Type: AWS::ApiGatewayV2::Stage
    Properties: 
      ApiId: !Ref WebsocketApi
      Description: Websocket Api Stage
      StageName: base
      AutoDeploy: true

  WebsocketDomainName:
    Type: AWS::ApiGatewayV2::DomainName
    Properties:
      DomainName: !Ref WebsocketDomain
      DomainNameConfigurations:
        - CertificateArn: !Ref WebsocketCertificateArn
          SecurityPolicy: TLS_1_2
          EndpointType: REGIONAL

  WebsocketDomainMapping:
    Type: AWS::ApiGatewayV2::ApiMapping
    Properties:
      ApiId: !Ref WebsocketApi
      ApiMappingKey: base
      DomainName: !Ref WebsocketDomainName
      Stage: !Ref WebsocketStage

  WebsocketDnsRecord:
    Type: AWS::Route53::RecordSet
    Properties:
      HostedZoneId: !Ref HostedZoneId
      Name: !Ref WebsocketDomain
      Type: CNAME
      AliasTarget:
        DNSName: !GetAtt WebsocketDomainName.RegionalDomainName
        EvaluateTargetHealth: false
        HostedZoneId: !GetAtt WebsocketDomainName.RegionalHostedZoneId

如果我遗漏了一些信息,请告诉我。

任何帮助将不胜感激,我为此绞尽脑汁已经有一段时间了。

使用 wscat 时是否缺少协议? 你应该像这样使用它:

wscat -c wss://socketserve.example.com

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM