2011-08-04 32 views
24

Tôi có một cá thể EC2 đang sử dụng cài đặt Linux tùy chỉnh của Amazon có sẵn trong apache. Cài đặt này cũng đã cài đặt openssl. Điều đó đang được nói, có vẻ như không phải là một mod_ssl.so để tải lên trong httpd.conf. Vì vậy, tôi muốn biết cách tốt nhất để có được apache được kích hoạt ssl để tôi có thể thiết lập máy chủ ảo SSL của tôi (lưu ý rằng tôi đã thiết lập cert/chữ ký) rồi. Lý tưởng nhất, tôi muốn không phải xây dựng lại/cài đặt lại apache.Bật SSL trên apache instance trên EC2

Trả lời

31

Hãy thử lệnh này:

yum install mod_ssl 
+10

Chúc mừng. Đối với người dùng Apache 2.4: Tôi đã phải sử dụng 'yum install mod24_ssl'. –

+4

có, 'yum install mod24_ssl' hoạt động tốt trên máy chủ amazon ec2 của tôi. –

+1

ai đó có thể vui lòng giải thích lý do tại sao tất cả mọi người luôn luôn gửi yum mà không có sudo? nó không bao giờ hoạt động mà không có sudo, vậy tại sao bạn không viết nó? – Anthony

24

Một bản tóm tắt về những gì cần phải được thực hiện để kích hoạt SSL trên máy chủ apache trên EC2: Chứng chỉ SSL

  1. Nhận (mà bạn đã làm)
  2. Cài đặt mod_ssl như Jose Vega đã nói
  3. Thêm các dòng sau vào httpd.conf của bạn 3.
NameVirtualHost *:443 

<VirtualHost *:443> 
    ServerName www.example.com 
# other configurations 
SSLEngine on 
SSLCertificateFile /etc/httpd/conf/ssl.crt/mydomain.crt 
SSLCertificateKeyFile /etc/httpd/conf/ssl.key/mydomain.key 
</VirtualHost> 

Cuối cùng, đừng quên mở cổng 443 trên EC2 của bạn

+2

Tôi lãng phí vài giờ cố gắng tìm hiểu lý do tại sao tôi không thể truy cập trang web của mình bằng SSL và chỉ để thông báo rằng tôi quên mở cổng 443 trong nhóm bảo mật của mình!Nếu không phải vì lời nhắc của bạn, tôi có thể đã dành một vài giờ cố gắng để gỡ lỗi này. – Stanley

+0

Tuyệt đối tuyệt vời! Cần lưu ý rằng thư mục mặc định cho tệp .crt và .key trên máy chủ EC2 '/ etc/pki/tls/private /' –

12

tôi quản lý để kích hoạt SSL trên dụ EC2 của tôi và để cài đặt một chứng chỉ SSL miễn phí từ startssl.com. Tôi đã thực hiện một vài sai lầm, đây là cách tiếp cận cơ bản:

  1. Đăng ký để viết startssl.com bằng cách nhấn vào liên kết Control Panel
    • Toàn bộ quá trình đăng ký. Bạn sẽ cần xác minh địa chỉ email của mình.
  2. Xác nhận tên miền của bạn dưới Validation Wizard -> Domain Name Validation
  3. Nhận Giấy chứng nhận bởi Giấy chứng nhận Hướng dẫn
    • Chọn: Web Server SSL/TLS Certificate
    • Nhập mật khẩu mà sẽ được sử dụng để mã hóa khóa riêng. Bạn sẽ cần điều này sau.
    • tôi đã chọn keysize của 4096
    • Save the private key được mã hóa như ssl.encrypted.key nơi nào đó
    • ?? Tôi quên điều xảy ra tiếp theo
    • Lưu tệp chứng chỉ dưới dạng ssl.crt someplace. Đối với tôi, tôi đã phải chờ 30 phút sau đó nó xuất hiện dưới Tool Box -> retrive Certificate
  4. Sử dụng openssl để giải mã ssl.encrypted.key tập tin được mã hóa
    • sudo openssl rsa -in ssl.encrypted.key -out ssl.unencrpted.key
    • startssl.com cũng có một tùy chọn giải mã trên trang web của họ, nhưng nó không làm việc cho tôi
  5. putty/ssh vào máy EC2 của bạn
  6. cài đặt mod_ssl
    • sudo yum install mod_ssl
  7. Thay thế chứng chỉ mặc định và khóa
    • sudo vi /etc/pki/tls/certs/localhost.crt
    • Dán nội dung của ssl.crt
    • Đảm bảo dán chính xác! Tôi luôn luôn mất 6 ký tự đầu tiên
    • Sử dụng :%d xóa giấy chứng nhận hiện tại nếu cần
    • [ESC] wq
    • sudo vi /etc/pki/tls/private/localhost.key
    • Dán trong các nội dung của ssl.unencrypted.key
    • Một lần nữa chắc chắn rằng nó dán một cách chính xác!
    • [ESC] wq
  8. Kiểm tra cấu hình
    • apachectl configtest
  9. Restart
    • sudo service httpd restart
    • Tôi đã khởi động lại vấn đề và tôi nghĩ những gì cố định nó là 0.123.
+0

Tôi đã thực hiện tất cả các bước này - 'sudo vi/etc/pki/tls/certs/localhost. crt' gây ra vấn đề cho tôi. Thay thế nội dung của nó bằng nội dung của tệp ssl.crt của tôi gây ra sự cố. Httpd sẽ không bắt đầu vì nó - 'apachectl configtest' đã nói' Cú pháp OK' nhưng httpd vẫn không khởi động được. Khôi phục tệp httpd cố định để chắc chắn là nguồn. Bất kỳ ý tưởng? – maxhud

3

Bạn nên cài đặt các module SSL, vì mod SSL không sử dụng với hầu hết các trường theo mặc định, nhưng điều đó phụ thuộc vào phiên bản Apache bạn đang sử dụng trong trường hợp AWS của bạn. Để kiểm tra một trong những bạn đang sử dụng, bạn có thể chạy lệnh này trong dòng lệnh của bạn:

httpd -v 

Đối với Apache 2,2

yum install mod_ssl 

Đối với Apache 2,4

yum install mod24_ssl 
0

Nếu bạn đang sử dụng Amazon Lightsail, hãy nhớ truy cập Mạng từ bảng điều khiển của Lightsail và thêm HTTPS/443 vào Tường lửa của bạn:

enter image description here

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