簡體   English   中英

在 Elastic Beanstalk 單實例上配置 SSL

[英]Configuring SSL on Elastic Beanstalk Single Instance

我正在嘗試為我的 NodeJS Beanstalk 實例安裝 SSL 證書。 按照Amazon 的這些說明,我創建了 YAML 文件並插入了我的信息。

每次我嘗試部署時都會收到此錯誤:

應用程序版本 0.0.3 中的配置文件 .ebextensions/singlessl.config 包含無效的 YAML 或 JSON。 YAML 異常:在掃描下一個標記時發現字符 '\\t' 不能在 "" 中開始任何標記,第 10 行,第 1 列: ^ ,JSON 異常:位置 0 處出現意外字符 (R) .. 更新配置文件。

我已經用細齒梳檢查了這個東西,它在多個驗證器中進行了驗證,甚至在多個操作系統上編寫了它......但我似乎無法動搖這個假設的制表符。

有沒有人有這樣的 JSON 配置文件示例? 我的其他配置是 JSON 格式,效果很好。 如果沒有,誰能看到我在這里做錯了什么?

Resources:
  sslSecurityGroupIngress: 
    Type: AWS::EC2::SecurityGroupIngress
    Properties:
      GroupId: {Ref : MyIDHere}
      IpProtocol: tcp
      ToPort: 443
      FromPort: 443
      CidrIp: 0.0.0.0/0

files:
  /etc/nginx/conf.d/ssl.conf:
    mode: "000755"
    owner: root
    group: root
    content: |
      # HTTPS server

      server {
          listen       443;
          server_name  localhost;

          ssl                  on;
          ssl_certificate      /etc/pki/tls/certs/server.crt;
          ssl_certificate_key  /etc/pki/tls/certs/server.key;

          ssl_session_timeout  5m;

          ssl_protocols  TLSv1 TLSv1.1 TLSv1.2;
          ssl_ciphers  ALL:!ADH:!EXPORT56:RC4+RSA:+HIGH:+MEDIUM:+LOW:+SSLv2:+EXP;
          ssl_prefer_server_ciphers   on;

          location / {
              proxy_pass  http://nodejs;
              proxy_set_header   Connection "";
              proxy_http_version 1.1;
              proxy_set_header        Host            $host;
              proxy_set_header        X-Real-IP       $remote_addr;
              proxy_set_header        X-Forwarded-For $proxy_add_x_forwarded_for;
          }
      }

  /etc/pki/tls/certs/server.crt:
    mode: "000400"
    owner: root
    group: root
    content: |
      -----BEGIN CERTIFICATE-----
      CERT DATA HERE
      -----END CERTIFICATE-----

/etc/pki/tls/certs/server.key:
    mode: "000400"
    owner: root
    group: root
    content: |
      -----BEGIN RSA PRIVATE KEY-----
      KEY DATA HERE
      -----END RSA PRIVATE KEY-----

在第 10 行有一個制表符。 刪除此選項卡應該可以解決您收到的錯誤。

當您從 Amazon 的說明中復制代碼時,它復制到一個選項卡上,這將導致此問題。 我遇到了同樣的問題,如果您查看 YAML 文件並確保沒有奇怪的空白字符,它應該可以正常工作。

對我來說,在使用 AWS Beanstalk Single Instance SSL for HTTPS(用於 Docker env)完成相同的例程之后,以及在我的編輯器中找出 YAML 和制表符 vs 空格(或鍵頁腳后沒有空格,或...)之后的時間之后( Atom/Packages/Whitespace),甚至將 YAML 轉換為 JSON(Atom/Packages/YAML_JSON Converter),我已經意識到初始密鑰已損壞,必須生成一個新集合

openssl genrsa 2048 > privatekey.pem
openssl req -new -key privatekey.pem -out csr.pem
openssl x509 -req -days 365 -in csr.pem -signkey privatekey.pem -out public.crt
# last line is for signing the rsa yourself for development purposes.

然后一切正常! 所以我不能強調確保這些鍵工作的重要性。 似乎找出它的唯一方法是得到一些這樣的錯誤:

PEM_read_bio_PrivateKey:ASN1 錯誤:0D0680A8:asn1 編碼例程:ASN1_CHECK_TLEN 錯誤:0D07803A:asn1 編碼例程:ASN1_ITEM_EX_D2I:嵌套 asn1 錯誤

祝你好運!

PS:哦,如果您遇到 __MACOSX/ 錯誤,請執行以下操作:

 zip -d Archive.zip __MACOSX/\*

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM