Bài viết này là một phần của loạt hướng dẫn máy chủ Apache:

  • Bảo mật Apache trên Ubuntu - Phần 1
  • Bảo mật Apache trên Ubuntu - Phần 2
  • Tối ưu hóa hiệu suất Apache - Phần 1
  • Tối ưu hóa hiệu suất Apache - Phần 2
  • Thiết lập Virtualhost dựa trên tên Apache
  • Thiết lập IP và Virtualhost dựa trên cổng trong Apache
  • Làm thế nào để thiết lập mật khẩu bảo vệ thư mục Web trong Apache
  • Thiết lập máy chủ Apache với hỗ trợ SSL trên Ubuntu
  • Thiết lập Fail2ban để bảo vệ Apache khỏi tấn công DDOS
  • Làm thế nào để thiết lập Webdav với Apache trên Ubuntu
  • Giám sát máy chủ web Apache bằng Mod_status
  • Làm thế nào để bảo vệ chống lại DDoS với Mod_evasive trên máy chủ Apache

SSL còn được gọi là giao thức Lớp cổng bảo mật. Nó được tạo ra bởi Netscape để đảm bảo giao dịch giữa các máy chủ web và trình duyệt. Giao thức SSL sử dụng Tổ chức phát hành chứng chỉ (CA) để xác định một đầu hoặc cả hai đầu của giao dịch. Tất cả các liên lạc được gửi qua kết nối HTTP thông thường đều ở dạng văn bản thuần túy và bất kỳ tin tặc nào cũng có thể truy cập kết nối giữa trình duyệt của bạn và trang web và đọc thông tin nhạy cảm như chi tiết thẻ tín dụng hoặc số an sinh xã hội của bạn. SSL được sử dụng là để giữ cho thông tin nhạy cảm được gửi qua Internet được mã hóa, vì vậy thông tin trở nên không thể đọc được đối với tất cả mọi người.

Chứng chỉ tự ký so với chứng chỉ thương mại

Chứng chỉ tự ký được chủ sở hữu ký. Nó thường được sử dụng để thử nghiệm các máy chủ cục bộ và môi trường phát triển. Mặc dù chứng chỉ tự ký cung cấp cùng mức độ bảo mật giữa trang web và trình duyệt, hầu hết các trình duyệt web sẽ luôn hiển thị thông báo cảnh báo bảo mật rằng chứng chỉ trang web được tự ký và không thể tin cậy vì nó không được ký bởi Tổ chức phát hành chứng chỉ.

Chứng chỉ thương mạichứng chỉ được ủy quyền được cấp bởi tổ chức phát hành chứng chỉ đáng tin cậy. Chứng chỉ đã ký chủ yếu được sử dụng trong môi trường sản xuất.

Trong bài viết này tôi sẽ giải thích cách tạo một chứng chỉ SSL tự ký cho Apache, nó sẽ cho phép bạn mã hóa lưu lượng truy cập đến máy chủ web Apache của bạn.

Định cấu hình Apache để hỗ trợ SSL

Theo mặc định, Openssl được cài đặt trong Ubuntu 14.04. Mô-đun này cung cấp hỗ trợ SSL cho Apache. Nó được tắt theo mặc định, vì vậy bạn cần bật mô-đun SSL trước.

Bạn có thể bật mô-đun SSL bằng cách chạy:

 sudo a2enmod ssl 

Sau khi bạn đã bật SSL, bạn sẽ phải khởi động lại dịch vụ Apache để thay đổi được nhận dạng.

 khởi động lại dịch vụ sudo apache2 

Tạo chứng chỉ tự ký

Bước đầu tiên là tạo chứng chỉ. Với mục đích thử nghiệm, hoặc cho các mạng LAN nhỏ, bạn cần tạo khóa riêng (ca.key) với mã hóa 2048 bit.

Để thực hiện việc này, hãy chạy:

 sudo openssl genrsa -out ca.key 2048 

Sau đó, tạo yêu cầu ký chứng chỉ (ca.csr) bằng lệnh sau:

 sudo openssl req -nodes -new -key ca.key -out ca.csr 

Cuối cùng, tạo chứng chỉ tự ký (ca.crt) loại X509 hợp lệ cho 365 phím.

 sudo openssl x509 -req -days 365 -in ca.csr -signkey ca.key -out ca.crt 

Tạo thư mục để đặt các tệp chứng chỉ mà chúng tôi đã tạo.

 sudo mkdir / etc / apache2 / ssl 

Tiếp theo, sao chép tất cả các tệp chứng chỉ vào thư mục "/ etc / apache2 / ssl".

 sudo cp ca.crt ca.key ca.csr / etc / apache2 / ssl / 

Định cấu hình Apache để sử dụng chứng chỉ SSL:

Bây giờ tất cả các chứng chỉ đã sẵn sàng. Điều tiếp theo cần làm là thiết lập Apache để hiển thị chứng chỉ mới.

Đối với điều này, bạn cần bật hỗ trợ SSL trên tệp máy chủ ảo mặc định của Apache nằm trong thư mục /etc/apache2/sites-enable/ .

Bạn có thể thực hiện việc này bằng cách chỉnh sửa tệp cấu hình máy chủ ảo mặc định của Apache.

 sudo nano /etc/apache2/sites-enable/000-default.conf 

Nhận xét tất cả các dòng bằng cách thêm dấu “#” ở trước mỗi dòng và thêm các dòng sau:

 ServerAdmin webmaster @ localhost DocumentRoot / var / www / html ErrorLog $ {APACHE_LOG_DIR} /error.log CustomLog $ {APACHE_LOG_DIR} /access.log kết hợp SSLEngine trên SSLCertificateFile /etc/apache2/ssl/ca.crt SSLCertificateKeyFile / etc / apache2 / ssl /ca.key 

Lưu và đóng tệp, sau đó khởi động lại Apache.

 sudo /etc/init.d/apache2 khởi động lại 

Điều này sẽ cho phép máy chủ ảo mới của bạn sẽ phân phối nội dung được mã hóa bằng chứng chỉ SSL mà bạn đã tạo.

Kiểm tra máy chủ Apache (HTTPS):

Để xác minh máy chủ web Apache (HTTPS), hãy mở trình duyệt web của bạn và nhập địa chỉ IP máy chủ của bạn (với “https: //”, ví dụ: “https://192.168.1.227”).

Một lỗi sẽ xuất hiện trên trình duyệt của bạn và bạn phải chấp nhận chứng chỉ theo cách thủ công. Thông báo lỗi xuất hiện vì chúng tôi đang sử dụng chứng chỉ tự ký thay vì chứng chỉ được ký bởi tổ chức phát hành chứng chỉ mà trình duyệt tin cậy và trình duyệt không thể xác minh danh tính của máy chủ mà bạn đang cố gắng kết nối. Khi bạn thêm ngoại lệ vào xác minh danh tính của trình duyệt, bạn sẽ thấy trang kiểm tra Ubuntu cho trang web mới được bảo mật của bạn.

Phần kết luận

Bây giờ, bạn đã kích hoạt SSL trên máy chủ Apache của bạn. Điều này sẽ giúp bảo mật thông tin liên lạc giữa máy chủ và máy khách Apache của bạn. Nếu bạn muốn lưu trữ một trang web công cộng có hỗ trợ SSL, thì bạn cần phải mua chứng chỉ SSL từ một tổ chức phát hành chứng chỉ tin cậy.