
Apache 2 hỗ trợ
SSL/TLS: Hướng dẫn
từng bước (Phần II)

Phần II
Trong phần đầu tiên của loạt bài này, các bạn đã được hướng dẫn cách cài đ
ặt, cấu h
m
ềm Apache 2.0 hỗ trợ SSL/TLS. Bây giờ, phần hai sẽ tiếp tục thảo luận vấn đề thiết lập modul mod_ssl
để đạt được mức an toàn cao nhất và sự thực thi tối ưu. Đ
ồng thời các bạn cũng sẽ đ
thế nào để tạo ra một Quyền hạn chứng chỉ (Certification Authority) nội bộ v
à
trên thư viện nguồn mở OpenSSL.
Những yêu cầu thiết lập cho mod_ssl
Trong Apache 2.0.52 có hơn 30 hướng dẫn có thể dùng để cấu hình mod_ssl
. B
hướng dẫn này có thể tìm thấy trong Apache's mod_ssl documentation. Ph
ần n
yêu cầu thiết lập để nâng cao độ an toàn và sự thực thi của kết nối SSL/TLS.
Danh sách các thiết lập này được chỉ ra trong bảng dưới đây:
Chỉ thị Các yêu c
ầu thiết lập hoặc chú thích

SSLEngine
Ph
ải đặt ở chế độ cho phép, nếu không th
trạm ảo) sẽ không dùng SSL/TLS đư
ợc
SSLRequireSSL
Ph
ải đặt ở chế độ cho phép, nếu không ng
cập nội dung web qua các yêu c
ầu HTTP thông th
không cần chút gì tới SSL/TLS.
SSLProtocol
SSLProxyProtocol
Nên thiết lập chế độ chỉ d
ùng TLS v1.
các web browser hi
ện nay đểu hỗ trợ cả hai. V
th
ể vô hiệu hoá SSL v2.0 một cách an to
SSLCipherSuite
SSLProxyCipherSuite
Để tạo ra phương thức mã hoá m
ạnh, tham số n
HIGH (>168 bits) và MEDIUM (128 b
bits) và NULL (không mã hoá) đ
ặt bộ m
vô hiệu hoá. Nên vô hi
ệu hoá tất cả các bộ m
dạng nặc danh (aNULL). Nhưng c
ũng tuỳ mục đích. Nếu chúng
ta muốn hỗ trợ cho web browser m
à k
dùng bộ m
ã hoá EXPORT (56 bit và 4

chúng ta nên dùng
SHA1 hơn là MD5. B
an toàn hơn MD5, sau khi phát hi
ện ra các xung đột trong MD5.
Tóm lại, các thiết lập cần thiết n
ên là:
HIGH:MEDIUM:!aNULL:+SHA1:+M
Chú ý: có th
ể xem các thiết lập hỗ trợ bộ m
openssl ciphers -v
'HIGH:MEDIUM:\
!aNULL:+SHA1:+
SSLOptions
Tuỳ chọn "+StrictRequire" nên đư
ợc thiết lập, nếu không chỉ thị
"Satisfy Any" có th
ể ép mod_ssl cho phép truy cập nội dung
web ngay cả khi SSL/TLS không đư
ợc d
SSLRandomSeed
Để khởi động Apache nên cài đ
ặt để sử dụng thiết bị ngẫu nhi
giả (/dev/urandom) và/ho
ặc EGD (Entrophy Gathering
Daemon). Trư
ớc khi mỗi kết nối SSL mới đ

cấu hình lại để dùng nguồn được c
ài đ
EGD. Không nên dùng
/dev/random tr
Bởi vì /dev/random ch
ỉ có thể cung cấp nhiều entropy tại một
thời điểm nhất định nào đó.
SSLSessionCache
Đ
ể tránh lặp lại các “bắt tay” SSL cho các y
song (ví d
ụ khi web browser tải nhiều h
khoảng thời gian), SSL caching n
ên đư
để dùng b
ộ nhớ chia sẻ (SHM), hoặc DBM. Khi thiết lập n
"none", th
ực thi của web server có thể giảm một cách đáng kể.
SSLSessionCacheTimeout
Giá trị này mô t
ả số giây thời gian sau k
SSLSessionCache hết hiệu lực. Nó n
ên đư
600 giây. Tuy nhiên th
ời gian thực phụ thuộc v
trung bình người dùng s
ử dụng trong mỗi lần viếng thăm web
server. Ví dụ nếu thời gian trung b
ình
trị thiết lập nên ít nhất l
à 900 (15 phút