我正在尝试为我的NodeJS Beanstalk实例安装SSL证书。在这些instructions from 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-----
答案 0 :(得分:1)
第10行有一个制表符。删除此选项卡可以解决您收到的错误。
当您从亚马逊的指令中复制代码时,它会复制到会导致此问题的选项卡上。我遇到了同样的问题,如果你浏览YAML文件并确保没有奇怪的空白字符,它应该可以正常工作。
答案 1 :(得分:0)
对我来说,在使用适用于HTTPS的AWS Beanstalk单实例SSL(对于Docker env)使用相同的例程之后,并花了一些时间弄清楚了YAML和制表符与空间(或键页脚后没有空格,或..)我的编辑器(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错误
祝你好运!
P.S .:哦,如果您遇到__MACOSX /错误,请执行以下操作:
zip -d Archive.zip __MACOSX/\*