Tin tức và phân tích của tất cả các thiết bị di động

Làm cách nào để định cấu hình Apache HTTP với chứng chỉ SSL?

Hãy bảo mật Apache bằng chứng chỉ SSL/TLS.

Sau khi chứng chỉ được triển khai, địa chỉ miền/IP được định cấu hình sẽ khả dụng qua HTTPS.

Hãy bắt đầu nó.

Ở cấp độ cao, chúng tôi sẽ làm như sau.

  • Biên dịch Apache HTTP 2.4.5 với mô-đun SSL
  • Nhận chứng chỉ SSL
  • Định cấu hình Apache để hỗ trợ SSL

Cài đặt Apache với SSL từ nguồn

Để định cấu hình SSL, Apache HTTP phải được biên dịch bằng mod_ssl. Tôi sẽ sử dụng CentOS 7 VM từ Digital Ocean để chứng minh điều này.

  • Đăng nhập vào máy chủ Linux đã root của bạn và tải xuống phiên bản Apache mới nhất
wget http://www-us.apache.org/dist//httpd/httpd-2.4.25.tar.gz .

Lưu ý: Bạn có thể kiểm tra phiên bản mới nhất tại đây.

  • Giải nén bằng gunzip
gunzip -c httpd-2.4.25.tar.gz | tar xvf -
  • Bạn sẽ có một thư mục mới “httpd-2.4.25”
  • Vào trong và thực hiện lệnh thiết lập sau
./configure --enable-ssl –-enable-so

Lưu ý: Nếu bạn đang thực hiện việc này trên một máy chủ hoàn toàn mới, bạn có thể gặp sự cố với APR, PCRE, OpenSSL và bạn có thể muốn tham khảo hướng dẫn khắc phục sự cố.

Đảm bảo rằng bạn không gặp bất kỳ lỗi nào từ lệnh cấu hình ở trên, sau đó bạn cần cài đặt bằng lệnh make.

make 
make install

Như thường lệ, đảm bảo không có lỗi từ các lệnh trên. Điều này có nghĩa là bạn đã cài đặt một máy chủ web Apache có hỗ trợ SSL.

Nhận chứng chỉ SSL

Có nhiều cách để tạo và lấy chứng chỉ SSL do CA ký.

Nếu bạn muốn triển khai SSL trên máy chủ mạng nội bộ, hầu hết các tổ chức đều có một nhóm nội bộ gồm các nhà phát hành chứng chỉ, vì vậy bạn cần liên hệ với họ. Nhưng bạn vẫn cần tạo CSR (Yêu cầu ký chứng chỉ) và bạn có thể làm điều đó với OpenSSL.

Tuy nhiên, nếu bạn muốn bảo mật URL của mình với internet, bạn có thể mua chứng chỉ từ VeriSign, GoDaddy, Namecheap, ZeroSSL, v.v. hoặc nhận chứng chỉ MIỄN PHÍ từ Let’s Encrypt.

Let’s Encrypt là một dự án hợp tác của Linux Foundation cung cấp chứng chỉ SSL/TLS MIỄN PHÍ. Tôi sẽ sử dụng Let’s Encrypt để nhận một chứng chỉ cho tên miền của mình – Chandan.io

Có nhiều cách để tạo CSR, nhưng cách dễ nhất mà tôi thấy là sử dụng công cụ trực tuyến “SSL MIỄN PHÍ”.

Nhập URL bạn muốn bảo mật

Xác minh quyền sở hữu miền bằng một trong các phương pháp được liệt kê và tải xuống các tệp chứng chỉ miền.

Bạn sẽ nhận được ba tệp mà chúng tôi sẽ sử dụng để định cấu hình máy chủ Apache.

  • khóa – đây là tệp khóa của bạn và không được chia sẻ công khai với bất kỳ ai
  • Chứng chỉ – chứng chỉ SSL hiện tại cho miền của bạn
  • Ca_bundle – chứng chỉ người ký gốc/trung gian
  • Chuyển tệp đã tải xuống tới máy chủ web. Chúng ta sẽ cần chúng sớm thôi.

    Cấu hình SSL của Apache

    Bước cuối cùng sẽ là định cấu hình Apache để xử lý yêu cầu qua HTTPS.

    • Đăng nhập vào máy chủ Apache
    • Sao lưu tệp httpd.conf (vị trí mặc định /usr/local/apache2/conf/)
    • Mở tệp trong trình chỉnh sửa vi và đảm bảo mô-đun mod_ssl và httpd-ssl.conf tồn tại và không bị nhận xét
    LoadModule ssl_module modules/mod_ssl.so 
    Include conf/extra/httpd-ssl.conf

    Chúng tôi sẽ sử dụng tệp httpd-ssl.conf để định cấu hình chi tiết chứng chỉ. Để đảm bảo rằng các tham số chính xác tồn tại, bạn cần làm như sau.

  • SSLCertificateFile – Đường dẫn đến tệp CRT của chứng chỉ đã tải xuống trước đó
  • SSLCertificateKeyFile – đường dẫn đến tệp khóa private.a
  • SSLCertificateChainFile – đường dẫn đến tệp ca_bundle.crt
  • Mẹo: Bạn có thể tạo một thư mục mới có tên là “ssl” và lưu trữ tất cả các tệp liên quan đến chứng chỉ trong đó.

    • Tạo bản sao lưu nếu cần và sử dụng trình chỉnh sửa vi để sửa đổi tệp.
    SSLCertificateFile "/usr/local/apache2/conf/ssl/certificate.crt"
    SSLCertificateChainFile "/usr/local/apache2/conf/ssl/ca_bundle.crt"
    SSLCertificateKeyFile "/usr/local/apache2/conf/ssl/private.key"

    Tiếp theo, bạn cần định cấu hình chỉ thị “Tên máy chủ”. Đây thường là tên miền/URL của bạn

    ServerName chandan.io
    • Lưu tệp và khởi động lại máy chủ Apache
    cd /usr/local/apache2/bin 
    ./apachectl stop 
    ./apachectl start

    Và cuối cùng, bạn cần đảm bảo rằng tên miền của bạn được ánh xạ tới địa chỉ IP mới được định cấu hình của máy chủ web. Sau khi hoàn tất, hãy thử truy cập miền của bạn bằng HTTPS.

    Như bạn có thể thấy, Chandan.io có thể truy cập được qua https bằng chứng chỉ tôi đã thiết lập.

    Các bước trên là cần thiết để thiết lập chứng chỉ SSL và bạn cần sửa đổi thêm SSL để làm cho nó mạnh hơn và an toàn hơn mà tôi đã giải thích ở đây. Bạn cũng có thể kiểm tra SSL/TLS của máy chủ web của mình trước khi hoạt động để đảm bảo rằng nó không dễ bị tổn thương trước các lỗ hổng bảo mật phổ biến.

    Tôi hy vọng điều này cung cấp cho bạn ý tưởng về cách triển khai chứng chỉ SSL trên máy chủ Web Apache của bạn để làm cho URL có thể truy cập được qua HTTPS.

    Thích bài viết? Làm thế nào về chia sẻ với thế giới?

    Mục lục