Tài liệu Apache 2 hỗ trợ SSL/TLS: Hướng dẫn từng bước (Phần II) potx - Pdf 10



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
à m
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

ũng tuỳ mục đích. Nếu chúng
ta muốn hỗ trợ cho web browser m
à không c
dùng bộ m
ã hoá EXPORT (56 bit và 40 bit).
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:+MD5:+HIGH:+MEDIUM

Chú ý: có th
ể xem các thiết lập hỗ trợ bộ m

openssl ciphers -v
'HIGH:MEDIUM:\
!aNULL:+SHA1:+MD5:+HIGH:+MEDIUM'
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

ử dụng trong mỗi lần viếng thăm web
server. Ví dụ nếu thời gian trung b
ình là kho
trị thiết lập nên ít nhất l
à 900 (15 phút * 60 giây).
SSLVerifyClient

SSLProxyVerify
Khi không dùng b
ộ nhận dạng client hay proxy, các tuỳ chọn
này nên đ
ặt ở chế độ “none”. Không bao giờ n
chế độ "optional_no_ca". Bởi vì ngư
ợc lại
PKI, những chỗ nào client đư
ợc nhận dạng, chúng phải đ
các chứng chỉ phù h
ợp. “Optional” thỉnh thoảng đ
thuộc xem là cần hay không), tuy nhi
ên nó có th
việc với tất cả các web browser.
SSLVerifyDepth

SSLProxyVerifyDepth
Nên là con s
ố lớn nhất của CA trung gian. Ví dụ, để lấy chỉ các
chứng chỉ tự kí nên đặt nó l
à 0, cho các ch
bởi Root CA, nên đặt là 1…
SSLProxyEngine

ần quan trọng khác trong Apache modules
(mod_log_config và mod_set_envif) cũng cần được cài đ
ặt theo bảng 2 sau đây:
Chỉ thị Yêu cầu thiết lập hoặc chú thích
CustomLog
Để ghi thông tin về tham số của SSL (yêu c
ầu tối thiểu: phi
của giao thức và bộ mã hoá đư
ợc chọn) chúng ta n
sau:
CustomLog logs/ssl_request_log \
"%t %h %{HTTPS}x %{SSL_PROTOCOL}x
%{SSL_CIPHER}x
%{SSL_CIPHER_USEKEYSIZE}x
%{SSL_CLIENT_VERIFY}x
\"%r\" %b"

Setenvif
Để tương thích với các phiên b
ản cũ của MS Internet Explorer với
các l
ỗi trong phần thực thi SSL (ví dụ các vấn đề với h
alive, HTTP 1.1 trên SSL, các cảnh bào chú ý
đóng SSL trên socket
cuối kết nối. Các tuỳ chọn sau nên thiết lập:
SetEnvIf User-Agent ".*MSIE.*" \
nokeepalive ssl-unclean-shutdown \
downgrade-1.0 force-response-1.0

Tuỳ chọn trên là nguyên nhân web server sẽ d

 Dãy số chứng chỉ
 Thuộc tính X.509v3 sẽ nói cho web browser về kiểu và cách dùng c
ủa chứng chỉ
 URI của điểm phân phối CRL (nếu tồn tại)
 URI của X.509v3 Certificate Policy (nếu tồn tại)
 Tên và chữ kí được xác nhận bởi bộ nhận dạng chứng chỉ (CA)
Chú ý quan trọng là thuộc tính tên thông thường (CN) phải là tên mi
ền có đủ điều kiện tr
Nếu không web browser sẽ không thể kiểm chứng đư
ợc chứng chỉ có thuộc web server đang d
không.

Mẫu chứng chỉ web server (mẫu kiểu text) có thể như sau:
Certificate:
Data:
Version: 3 (0x2)
Serial Number: 1 (0x1)
Signature Algorithm: sha1WithRSAEncryption
Issuer: O=Seccure, OU=Seccure Root CA
Validity Not Before:
Nov 28 01:00:20 2004 GMT
Not After : Nov 28 01:00:20 2005 GMT
Subject: O=Seccure, OU=Seccure Labs, CN=www.seccure.lab
Subject Public Key Info:
Public Key Algorithm: rsaEncryption
RSA Public Key: (1024 bit)
Modulus (1024 bit):
00:c1:19:c7:38:f4:89:91:27:a2:1b:1d:b6:8d:91:
48:63:0e:3d:0d:2e:f8:65:45:56:db:98:4d:11:21:
01:ac:81:8e:3f:64:4a:8a:3f:21:15:ca:49:6e:64:

ột số giá trị thể hiện trong bảng 3. Để tạo ra một chứng chỉ đúng, các bạn cần
thay thế một số giá trị này bằng tên công ty hay tổ chức của bạn:
Mô tả thuộc
tính
Thuộc
tính
Ví dụ mẫu

Mã quốc gia
(2 kí tự)
C C = PL
Bang hay tỉnh S
S = mazowieckie
Khu vực L
L = Warsaw
Tên tổ chức O
O = Seccure
Đơn vị tổ
chức
OU
OU = Seccure Labs
Tên thông
thường
CN
CN
=
www.seccure.lab
Bảng 3. Ví dụ mẫu cho một chứng chỉ đúng
Có nên dùng mật khẩu để bảo vệ?


Tạo chứng chỉ web server

Trong phần này chúng ta có thể tạo các chứng chỉ web server. Thông thư
ờng có 3 kiểu chứng chỉ m
chúng ta có thể dùng:
1. Chứng chỉ tự kí (self-signed certificate)

2. Chứng chỉ được chứng nhận bởi CA (hầu hết)

3. Chứng chỉ được kí bởi CA nội bộ
Phần dưới đây sẽ mô tả chi tiết phương thức tạo các chứng chỉ trên. K
ết quả cuối c
thức nào được dùng sẽ chỉ có 2 file:
 server.key – khoá private của web server
 server.crt - chứng chỉ mã hoá PEM bao g
ồm cả khoá public của web browser
Phương thức 1: Chứng chỉ tự kí (chỉ dùng cho mục đích kiểm tra)

Phương thức này được đưa ra chỉ để tiếp tục quá trình kiểm tra của
chúng ta, ho
nhỏ, gần gũi (chẳng hạn như tại nhà hay m
ột mạng Intranets nhỏ). Để web browser có thể nhận dạng
được web server chứng chỉ tự kí phải được cài đặt vào m
ọi web browser cần truy cập web server đó. Điều
này có thể khá bất tiện.

Cặp đôi khoá public/private của web server và chứng chỉ mã hoá t
ự kí PEM có thể đ
openssl req \
-new \

cách được dùng nhiều nhất để biết web server SSL có được đ
ưa vào internet hay không. Dùng cách ti
cận này thì không cần phải cài đ
ặt chứng chỉ tại mọi web browser. Bởi hầu hết chúng đ
của chứng chỉ CA từ trước khi được cài đặt.

Hãy chú ý r
ằng, mỗi một bộ thẩm định chứng chỉ (CA) có các giới hạn khác nhau trong việc phân phối
tên riêng, cung cấp độ dài cho một khoá, các kí tự quốc tế. Do đó, trư
ớc khi tạo các y
bạn cần chắc chắn rằng các yêu cầu chứng chỉ của bạn phù hợp với đòi h
ỏi cụ thể của CA. N
CA mà các chứng chỉ đã kí của nó được cài đặt trên hầu hế
t các web browser (bao g
và một số hãng khác…). Nếu không thì web browser của người dùng có th
ể gặp vấn đề kiểm định với
web server.

Quá trình thu được một chứng chỉ kí bởi một CA tin cậy bao gồm các bư
ớc sau:

1. Bước đầu tiên chúng ta nên tạo một cặp khoá
public/private (trong server.key) và yêu c
(trong request.pem) như sau:
openssl req \
-new \
-sha1 \
-newkey rsa:1024 \
-nodes \
-keyout server.key \

Serial Number: 1 (0x1)
Signature Algorithm: sha1WithRSAEncryption
Issuer: O=Seccure, OU=Seccure Root CA

RSA Public Key: (1024 bit)
Modulus (1024 bit):
00:c1:19:c7:38:f4:89:91:27:a2:1b:1d:b6:8d:91:

X509v3 extensions:
X509v3 Basic Constraints:
CA:FALSE

BEGIN CERTIFICATE
MIICdzCCAeCgAwIBAgIBATANBgk
qhkiG9w0BAQUFADAsMRAwDgYDVQQKEwdTZWNj
dXJlMRgwFgYDVQQLEw9TZWNjdXJlIFJvb3QgQ0EwHhcNMDQxMTI4MDEwMDIwWhcN

ou0Kuxqk6E66ZpNjdIf9Q0i2k6LjPdobZEY1iLRLIuY8hHBdiN1kwlHC1lmAh7y9
f+PBRX7AX5zK4aE=
END CERTIFICATE
- Nếu chứng chỉ của bạn được nhận theo kiểu TXT + PEM, thì đây là câu l
ệnh để chuyển đổi nó sang
dạng PEM:
openssl x509 -in signed_cert.pem -out server.crt
- DER, mã hoá binary encoded X.509 (*.der, *.crt, *.cer)
[ non-text, binary representation ]
- Nếu chứng chỉ của bạn nhận theo kiểu DER, thì câu l
ệnh chuyển đổi sang kiểu PEM l
openssl x509 -in signed_cert.der -inform DER -out server.crt
4. Kiểm chứng và kiểm tra chứng chỉ


Nhờ tải bản gốc

Tài liệu, ebook tham khảo khác

Music ♫

Copyright: Tài liệu đại học © DMCA.com Protection Status