Thiết lập cơ chế bảo mật SSL miễn phí

Việc sở hữu 1 hệ thống web server có cơ chế chứng thực bảo mật Secure Socke Layer – SSL từ 1 tổ chức bảo mật – Certificate Authority có uy tín (không hiển thị cảnh báo truy cập trên các trình duyệt), sẽ có rất nhiều lợi thế. Tuy nhiên, mức giá đưa ra từ 1 tổ chức uy tín như VeriSign hoặc các nhà cung cấp tương tự có thể làm nhiều người phải băn khoăn trước khi quyết định. Bài viết sau, Quản Trị Mạng sẽ giới thiệu với các bạn dịch vụ của nhà cung cấp StartSSL của Israel, có cung cấp chứng nhận bảo mật SSL miễn phí trong vòng 1 năm.

Kể từ khi chứng nhận gốc của StartSSL có trong tất cả các trình duyệt phổ biến hiện nay, khi truy cập hoặc xác nhận thông tin chứng thực từ các nhà cung cấp đều không gặp phải thông điệp báo lỗi nào. Bài viết sau sẽ hướng dẫn các bạn chi tiết yêu cầu thêm chứng nhận StartSSL, tích hợp vào hệ thống web server Apache hoạt động trong nền tảng Linux. 

Yêu cầu duy nhất đối với người quản lý để được cấp phép chứng thực cho tên miền là có thể nhận và gửi được email tới tài khoản quản trị (postmaster, hostmaster hoặc webmaster). Không cần kiểm tra thêm thông tin để xác thực người đang sử dụng có thực sự sở hữu tên miền đó hay không (tương đương như cơ chế CAs của RapidSSL). Hơn nữa, 1 chứng nhận như vậy chỉ có thể được cấp và cài đặt trên 1 hệ thống web server duy nhất. 

Các thủ tục tiến hành tương tự như Apache và Internet Information Server – IIS trong nền tảng Windows. Với IIS, các bước yêu cầu sẽ được thực hiện bằng Microsoft Management Console – MMC.
Sau đây là hình minh họa:

Các bước cơ bản để có được chứng nhận bảo mật khá giống nhau, đầu tiên, phải tạo ra 1 cặp key – public và private key. Dưới nền tảng Linux và BSD, thao tác này có thể được thực hiện thông qua:

openssl genrsa -out example.com.key 2048

Ở đây, example là domain sử dụng trong ví dụ. Trong trường hợp của người sử dụng thì nên thay đổi domain tương ứng là được. 

Sau bước này, domain example sẽ tạo ra 2 khóa – key với độ dài 2048 bits mỗi key và lưu trữ chúng tại file example.com.key. Thêm tham số -des3 sẽ tạo mật khẩu cho file key, và mật khẩu này sẽ được yêu cầu khi bắt đầu khởi động web server sau khi cài đặt. Cú pháp câu lệnh như sau:

openssl req -new -key example.com.key -out example.com.csr

Lấy khóa public từ file key vừa tạo, sau đó tạo tiếp Certificate Signing Request – CSR. File CSR này thường lưu trữ các thông tin về người chủ sở hữu key như tên, tuổi, tổ chức, công ty, chức danh, địa chỉ emaill, nơi đặt server … Thông số CSR này sẽ được gửi chuyển tiếp tới Certificate Authority, và tạo ra “chứng nhận” – certificate. File certificate này chứa đựng khóa public, thông tin về người sở hữu và tổ chức cấp phép, và 1 chữ ký điện tử – digital signature của nhà cấp phép. Khi hoàn thành, “giấy phép” này sẽ được lưu trữ trên hệ thống server và chuyển tới bất kỳ yêu cầu nào từ phía client, ít nhất là trong lý thuyết. 

Thực tế, khi bắt tay vào làm, chúng ta sẽ thấy 1 số điểm khác biệt so với lý thuyết. Điển hình, là việc StartSSL sẽ “bỏ qua” bất kỳ dữ liệu nào trong file CSR và chỉ xử lý những khóa – key được nhúng trong đó. Hơn nữa, để tránh cảnh báo xuất hiện trong trình duyệt của client, hệ thống web server không những phải cung cấp chứng nhận bởi StartSSL mà cần thêm 1 thông tin trung gian nữa được gọi là intermediate certificate, cũng từ StartSSL. 

Điểm bắt đầu trong quá trình cấp phép chứng nhận trực tuyến là lựa chọn Express Lane tại StartSSL. Người sử dụng nên khai báo các thông tin 1 cách đầy đủ và chính xác vào form mẫu (nếu vi phạm các điều khoản quy định thì việc chứng nhận của bạn sẽ bị đình chỉ). Sau đó StartSSL sẽ gửi 1 đoạn mã kích hoạt – verification code, bạn cần ghi nhớ để nhập vào hệ thống web server trong bước tiếp theo. Tiếp tục, hệ thống web server sẽ tiếp tục tạo ra mã xác nhận SSL client để xác nhận quyền sở hữu domain của bạn. Để làm đc việc này, đầu tiên phải tạo ra 1 cặp key và cung cấp cho hệ thống để cài đặt chứng nhận này trong trình duyệt. 

Thực chất đây là nơi các chứng thực SSL bắt đầu, yêu cầu phản hồi từ domain tương ứng, trong ví dụ này là example.com. Tên domain phải được điền không đi kèm tiền tố như www, ví dụ đơn thuần chỉ điền example.com, không được sử dụng http://www.example.com. Tiếp theo StartSSL sẽ gửi thông tin xác nhận và mã chứng thực – authentication code vào email đã đăng ký trước đó. Tại bước tiếp theo, Express Lane sẽ yêu cầu người sử dụng nhập mã yêu cầu này.
Sau đó, StartSSL sẽ trực tiếp tạo ra cặp key dành cho việc xác nhận. Và bạn hãy chắc chắn 1 điều rằng, khi 1 key đã được tạo ra để cung cấp cho 1 hệ thống web server nào đó, thì nó không bao giờ được tạo lại thêm lần nữa, lựa chọn Skip nên được sử dụng và quá trình tạo Certificate Signing Request sẽ được thực thi trước đó, đồng thời tải toàn bộ dữ liệu chứng nhận lên server. Cú pháp câu lệnh như sau:

cat example.com.csr

Như đã đề cập phía trên, StartSSL sẽ bỏ qua bất kỳ dữ liệu nào trong file CSR mà trực tiếp điền dữ liệu vào bên trong nội dung chứng nhận. Đồng thời, bảng thông báo hiển thị yêu cầu người sử dụng điền tên domain phụ – sub-domain, cũng được chứng nhận như domain chính. Như điển hình, mẫu form này cho phép người dùng điền thêm www vào phía trước, kết thúc quá trình này, chứng nhận sẽ được xác nhận cho 2 domain là https://www.example.comhttps://example.com 

Quá trình StartSSL tạo thông tin chứng nhận diễn ra sau đó, yêu cầu người sử dụng nên sử dụng cơ chế mã hóa base64-encoded. Để lưu giữ fie chứng nhận, chỉ cần sao lưu toàn bộ nội dung trong 2 tiền – hậu tố sau:

—–BEGIN CERTIFICATE—– 

Nội dung… 

—–END CERTIFICATE—–

Đánh dấu, và sao chép nội dung này vào file example.com.crt 

Cả 2 file CRT và KEY phải được lưu trữ đúng thư mục trên hệ thống web server Apache, ví dụ example.com.crt được đặt ở /etc/ssl/certs/, tiếp theo file example.com.key ở trong /etc/ssl/private/. Bên cạnh đó, bạn cần chỉnh lại đường dẫn trong file cấu hình Apache:

SSLCertificateFile /etc/ssl/certs/example.com.crt
SSLCertificateKeyFile /etc/ssl/private/example.com.key

Nhưng kể từ khi 1 số nhà cung cấp dịch vụ chứng nhận SSL không được tích hợp sẵn với các trình duyệt, hệ thống web server cần thực hiện thao tác giao tiếp intermediate certificate – IM StartSSL được sử dụng để giao tiếp với chứng nhận SSL. Chỉ cần thực hiện bước này để các trình duyệt theo vết các tập tin chứng thực mới được tạo ra và nhận phản hồi từ tín hiệu nhận dạng thành công. Các dữ liệu, thông tin yêu cầu IM này nằm trong file sub.class1.server.ca.pem trên hệ thống web server SSL. Từ đây, file sẽ được tải về và lưu trữ trong thư mục /etc/ssl/certs/. Điền giá trị sau vào file cấu hình của Apache:

SSLCertificateChainFile /etc/ssl/certs/sub.class1.server.ca.pem

Sau đó, khởi động hệ thống web server và mọi thứ đã đi vào hoạt động. Chỉ cần gõ example.com và địa chỉ trình duyệt, sẽ tự động được chuyển tới địa chỉ https://www.example.com 

Duy Khánh (Theo Quản Trị Mạng)

About Tony Nguyễn
Tôi tên Tony tự Tèo trú tại thôn Tám, Trảng Thanh tỉnh Thừa Thiên. Thưở thiếu thời trí tuệ tôi thường thường, tuy thế tính tình thật thà thẳng thắng, thích thi thơ ...

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

%d bloggers like this: