Apache 2 htrợ
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, cu 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 lp 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 để cu hình mod_ssl
. B
hướng dẫn này có thể tìm thy trong Apache's mod_ssl documentation. Ph
ần n
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 yêu c
ầu thiết lập hoặc chú thích
SSLEngine
Ph
trạm ảo) sẽ không dùng SSL/TLS đư
c
SSLRequireSSL
Ph
cập nội dung web quac 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.
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 lp, nếu không ch th
"Satisfy Any" có th
ể ép mod_ssl cho phép truy cp ni dung
web ngay cả khi SSL/TLS không đư
c d
SSLRandomSeed
Để khởi động Apache nên cài đ
ặt để s dng thiết b ngu 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 nhiu entropy ti 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
khong thời gian), SSL caching n
ên đư
để dùng b
nh chia sẻ (SHM), hoặc DBM. Khi thiết lp n
"none", th
ực thi của web server có thể gim 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 thuc v
trung bình người dùng s
dụng trong mỗi ln 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