10

Khi bạn có chứng chỉ cho miền của mình được cấp thông qua Trình quản lý Chứng chỉ AWS, cách bạn áp dụng chứng chỉ đó cho ứng dụng Cây đậu Đàn hồi.Sử dụng Trình quản lý Chứng chỉ AWS (Chứng chỉ ACM) với Cây đậu Đàn hồi

Có, ứng dụng Beanstalk Elastic được cân bằng tải và không có ELB liên kết với nó.

Tôi biết tôi có thể áp dụng trực tiếp cho ELB bản thân tôi. Nhưng tôi muốn áp dụng nó thông qua Elastic Beanstalk để cấu hình env được lưu vào mẫu Cloud Formation.

Trả lời

12

Tôi phát hiện ra, bạn không thể làm điều đó thông qua bảng điều khiển beanstalk đàn hồi (ít nhất là chưa). Tuy nhiên bạn vẫn có thể đặt nó thông qua ei cli, hoặc aws cli.

Sử dụng EB CLI

Về cơ bản những gì chúng tôi đang cố gắng làm là để cập nhật các thiết lập aws:elb:listener, bạn sẽ nhìn thấy các thiết lập có thể trong general options tài liệu.

Sử dụng EB CLI khá đơn giản. Giả sử chúng ta đã thiết lập công cụ awsebcli cho dự án của chúng ta, chúng ta có thể sử dụng lệnh eb config.

Nó sẽ mở trình chỉnh sửa thiết bị đầu cuối mặc định của bạn và cho phép bạn thay đổi các cài đặt được viết dưới dạng tệp YAML. Khi bạn thực hiện thay đổi và lưu nó, các eb config cmd sẽ tự động cập nhật các cài đặt cho môi trường Cây đậu Đàn hồi của bạn.

Bạn sẽ cần phải thêm các cài đặt sau để tập tin cấu hình của bạn:

aws:elb:listener:443: 
    InstancePort: '80' 
    InstanceProtocol: HTTP 
    ListenerEnabled: 'true' 
    ListenerProtocol: HTTPS 
    PolicyNames: null 
    SSLCertificateId: CERTIFICATE_ARN_HERE 

Thay đổi giá trị cho CERTIFICATE_ARN_HERE để ARN Giấy chứng nhận AMC của bạn. Bạn có thể tìm thấy nó trong Giấy chứng nhận AWS Manager Console:

QUAN TRỌNG:aws:elb:listener:443 thiết PHẢI bạn được đặt trên các thiết lập aws:elb:listener:80. Nếu không, bản cập nhật cấu hình môi trường sẽ bị lỗi.


Sử dụng AWS CLI

Cùng thể được thực hiện bằng cách sử dụng công cụ aws cli chung thông qua lệnh update-environment.

aws elasticbeanstalk update-environment \ 
--environment-name APPLICATION_ENV --option-settings \ 
Namespace=aws:elb:listener:443,OptionName=InstancePort,Value=80 \ 
Namespace=aws:elb:listener:443,OptionName=InstanceProtocol,Value=HTTP \ 
Namespace=aws:elb:listener:443,OptionName=ListenerProtocol,Value=HTTPS \ 
Namespace=aws:elb:listener:443,OptionName=SSLCertificateId,Value=CERTIFICATE_ARN_HERE 

LƯU Ý: Khi bạn cập nhật nó thông qua một trong hai phương pháp trên, đàn hồi Beanstalk console sẽ không hiển thị HTTPS đã được kích hoạt. Nhưng cân bằng tải sẽ, và nó cũng sẽ áp dụng cho mẫu Cloudformation cũng như được lưu vào cấu hình của EB.

+1

Tôi đã thử nó bằng cách eb cli và bằng cách thêm tập tin cấu hình dưới .ebextensions nó luôn luôn nói "không tìm thấy Server Certificate cho phím ...." http://egscr.com/JpcAa8 – Max

+0

@Max bạn làm không thêm tệp cấu hình vào thư mục .ebextensions. Eb cli sẽ tải xuống tệp cấu hình và tải lại tệp đó lên beanstalk đàn hồi khi bạn tạo thay đổi. CNTT không giống như thêm ebextension. –

+0

Tôi đã thêm tệp .ebextension và nó hoạt động. http://prnt.sc/b8k1xe – Max

2

Tôi tìm cách đơn giản nhất là thay đổi cân bằng tải EB thông qua bảng điều khiển của người dùng. Nhấp vào thay đổi và chọn chứng chỉ ACM mới. enter image description here

Khi bạn xem cấu hình EB, nó sẽ không xuất hiện, nhưng nó sẽ được thiết lập

0

Bạn có thể làm điều này hoàn toàn với CloudFormation; tuy nhiên, dường như khá phổ biến với Elastic Beanstalk, các tùy chọn cấu hình khó tìm hơn trong tài liệu hơn là cho các thành phần riêng lẻ bao gồm Elastic Beanstalk. Thông báo thông tin là ở đây:

http://docs.aws.amazon.com/elasticbeanstalk/latest/dg/command-options-general.html#command-options-general-elbloadbalancer

Nhưng về cơ bản những gì bạn cần làm là thêm sự sáng tạo của các CERT cho mẫu của bạn và sau đó tham khảo nó trong OptionSettings trong AWS::ElasticBeanstalk::ConfigurationTemplate:

"Certificate" : { 
     "Type": "AWS::CertificateManager::Certificate", 
     "Properties": { 
     "DomainName": "example.com", 
     } 
    }, 
// ... 
"ElasticbeanstalkTemplate": { 
     "Type": "AWS::ElasticBeanstalk::ConfigurationTemplate", 
     "Properties": { 
     "SolutionStackName": "MyEBStack", 
     "ApplicationName": "MyAppName", 
     "Description": "", 
     "OptionSettings": [{ 
      "Namespace": "aws:elb:listener:443", 
      "OptionName": "InstancePort", 
      "Value": "80" 
     }, { 
      "Namespace": "aws:elb:listener:443", 
      "OptionName": "InstanceProtocol", 
      "Value": "HTTP" 
     }, { 
      "Namespace": "aws:elb:listener:443", 
      "OptionName": "ListenerProtocol", 
      "Value": "HTTPS" 
     }, { 
      "Namespace": "aws:elb:listener:443", 
      "OptionName": "SSLCertificateId", 
      "Value": { 
      "Ref": "Certificate" 
      } 
     }, /*More settings*/] 
0

Kiểm tra trong đó vùng bạn đã tạo chứng chỉ và nếu nó khớp với vùng Cây đậu Đàn hồi. Tôi đã có chúng ở các khu vực khác nhau nên nó không hoạt động.

Các vấn đề liên quan