Apache 2.0 với giao thức SSL/TLS: Hướng dẫn từng bước (tiếp Phần I)
lượt xem 8
download
Trước khi chạy Apache lần đầu tiên, chúng ta cũng cần cung cấp cấu hình ban số nội dung web mẫu. Ít nhất, chúng ta cần theo các bước sau (như là Root): 1. Tạo một số nội dung web mẫu mà sẽ được đáp ứng qua SSL/TLS: umask 022 mkdir /www echo " \ Test works." /www/index.html chown -R root:sys /www 2. Thay thế file cấu hình Apache mặc định (thông thường được tìm thấy trong/usr/local/apache2/conf/httpd.conf) bằng một cái mới, dùng nội dung sau toàn và sự thực thi): # ...
Bình luận(0) Đăng nhập để gửi bình luận!
Nội dung Text: Apache 2.0 với giao thức SSL/TLS: Hướng dẫn từng bước (tiếp Phần I)
- Apache 2.0 với giao thức SSL/TLS: Hướng dẫn từng bước (tiếp Phần I)
- Cấu hình SSL/TLS Trước khi chạy Apache lần đầu tiên, chúng ta cũng cần cung cấp cấu hình ban số nội dung web mẫu. Ít nhất, chúng ta cần theo các bước sau (như là Root): 1. Tạo một số nội dung web mẫu mà sẽ được đáp ứng qua SSL/TLS: umask 022 mkdir /www echo " \ Test works." > /www/index.html chown -R root:sys /www 2. Thay thế file cấu hình Apache mặc định (thông thường được tìm thấy trong/usr/local/apache2/conf/httpd.conf) bằng một cái mới, dùng nội dung sau toàn và sự thực thi): # =================================================
- # Basic settings # ================================================= User apache Group apache ServerAdmin webmaster@www.seccure.lab ServerName www.seccure.lab UseCanonicalName Off ServerSignature Off HostnameLookups Off ServerTokens Prod ServerRoot "/usr/local/apache2" DocumentRoot "/www" PidFile /usr/local/apache2/logs/httpd.pid ScoreBoardFile /usr/local/apache2/logs/httpd.scoreboard DirectoryIndex index.html
- # ================================================= # HTTP and performance settings # ================================================= Timeout 300 KeepAlive On MaxKeepAliveRequests 100 KeepAliveTimeout 30 MinSpareServers 5 MaxSpareServers 10 StartServers 5 MaxClients 150 MaxRequestsPerChild 0 # =================================================
- # Access control # ================================================= Options None AllowOverride None Order deny,allow Deny from all Order allow,deny Allow from all # ================================================= # MIME encoding # =================================================
- TypesConfig /usr/local/apache2/conf/mime.types DefaultType text/plain AddEncoding x-compress .Z AddEncoding x-gzip .gz .tgz AddType application/x-compress .Z AddType application/x-gzip .gz .tgz AddType application/x-tar .tgz AddType application/x-x509-ca-cert .crt AddType application/x-pkcs7-crl .crl # ================================================= # Logs # ================================================= LogLevel warn
- LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-A combined LogFormat "%h %l %u %t \"%r\" %>s %b" common LogFormat "%{Referer}i -> %U" referer LogFormat "%{User-agent}i" agent ErrorLog /usr/local/apache2/logs/error_log CustomLog /usr/local/apache2/logs/access_log combined CustomLog logs/ssl_request_log \ "%t %h %{HTTPS}x %{SSL_PROTOCOL}x %{SSL_CIPHER}x \ %{SSL_CIPHER_USEKEYSIZE}x %{SSL_CLIENT_VERIFY}x \"%r # ================================================= # SSL/TLS settings # ================================================= Listen 0.0.0.0:443 SSLEngine on
- SSLOptions +StrictRequire SSLRequireSSL SSLProtocol -all +TLSv1 +SSLv3 SSLCipherSuite HIGH:MEDIUM:!aNULL:+SHA1:+MD5:+HIGH:+ME SSLMutex file:/usr/local/apache2/logs/ssl_mutex SSLRandomSeed startup file:/dev/urandom 1024 SSLRandomSeed connect file:/dev/urandom 1024 SSLSessionCache shm:/usr/local/apache2/logs/ssl_cache_shm SSLSessionCacheTimeout 600
- SSLPassPhraseDialog builtin SSLCertificateFile /usr/local/apache2/conf/ssl.crt/server.crt SSLCertificateKeyFile /usr/local/apache2/conf/ssl.key/server.key SSLVerifyClient none SSLProxyEngine off AddType application/x-x509-ca-cert .crt AddType application/x-pkcs7-crl .crl SetEnvIf User-Agent ".*MSIE.*" \ nokeepalive ssl-unclean-shutdown \ downgrade-1.0 force-response-1.0 3. Chú ý: Các bạn nên thay đổi một số giá trị trong file cấu hình trên. Chẳng h server, địa chỉ e-mail của người quản trị.v.v….
- 4. Tham gia cấu trúc lại thư mục khoá private của web server, các chứng c hồi chứng chỉ (CRLs). umask 022 mkdir /usr/local/apache2/conf/ssl.key mkdir /usr/local/apache2/conf/ssl.crt mkdir /usr/local/apache2/conf/ssl.crl 5. Tạo một dịch vụ “tự kí nhận” (nó sẽ chỉ được dùng cho mục đích kiểm tra của bạn nên lấy từ một CA thích hợp như Verisign): openssl req \ -new \ -x509 \ -days 30 \ -keyout /usr/local/apache2/conf/ssl.key/server.key \ -out /usr/local/apache2/conf/ssl.crt/server.crt \ -subj '/CN=Test-Only Certificate' Kiểm tra phần cài đặt
- Tại thời điểm này, chúng ta có thể bắt đầu Apache hỗ trợ SSL/TLS như sau: /usr/local/apache2/bin/apachectl startssl Apache/2.0.52 mod_ssl/2.0.52 (Pass Phrase Dialog) Some of your private key files are encrypted for security reasons. In order to read them you have to provide us with the pass phrases. Server 127.0.0.1:443 (RSA) Enter pass phrase:************* Ok: Pass Phrase Dialog successful. Sau khi máy chủ bắt đầu, chúng ta có thể cố gắng kết nối tới nó bằng cách trỏ v một đường dẫn URL có dạng: https://name.of.the.web.server (trong trường hợp làhttps://www.seccure.lab) Trong một vài phút, chúng ta sẽ thấy cảnh báo nói rằng có vấn đề với việc kiểm web server chúng ta muốn truy cập. Minh hoạ trong hình 3 là một ví dụ từ MS
- Hình 3. Cảnh báo trước của IE 6.0. Sự xuất hiện của cảnh báo trên đúng một cách hoàn hảo! Chúng ta nên nhận cả do sau: Web browser không biết Certificate Authority (quyền hạn chứng chỉ), đư chứng chỉ của web server (và không thể biết, bởi vì chúng ta đang dùng chứng certificate). CN (Common Name) – Tên chung được cho bởi chứng chỉ không nối ghé tại thời điểm nó là chứng chỉ chỉ đọc (Text-only Certificate), và nó sẽ là tên mi của web server (ví dụ như:www.seccure.lab)
- Sau khi thực thi với Internet Explorer, chúng ta nên xem nội dung web sau, nh 4: Hình 4. Trang web làm việc mẫu của SSL. Một điều cần chú ý, có một cái khoá vàng ở cuối của web browser. Điều đó có đã được thiết lập thành công. Giá trị 128 bit nói lên rằng khoá đối xứng được d dịch có độ dài 128 bit. Và nó đủ mạnh (ít nhất tại thời điểm này) để bảo vệ gia xâm nhập trái phép. Nếu chúng ta kích đúp vào biểu tượng khoá, chúng ta sẽ thấy các thuộc tính củ như được chỉ ra trong hình 5:
- Hình 5. Các chi tiết của chứng chỉ tự kí (sekf-signed certificate) Gở rối Nếu vì một lí do nào đó chúng ta không thể truy cập được vào website, có một hữu ích là “s_client”, nằm trong thư viện OpenSSL. Nó có thể được dùng để g SSL/TLS. Ví dụ sau chỉ ra cách dùng chức năng này như thế nào: /usr/bin/openssl s_client -connect localhost:443 CONNECTED(00000003) depth=0 /CN=Test-Only Certificate verify error:num=18:self signed certificate
- verify return:1 depth=0 /CN=Test-Only Certificate verify return:1 --- Certificate chain 0 s:/CN=Test-Only Certificate i:/CN=Test-Only Certificate --- Server certificate -----BEGIN CERTIFICATE----- MIICLzCCAZigAwIBAgIBADANBgkqhkiG9w0BAQQFADAgMR4wHAY LU9ubHkgQ2VydGlmaWNhdGUwHhcNMDQxMTIyMTg0ODUxWhcNMD WjAgMR4wHAYDVQQDExVUZXN0LU9ubHkgQ2VydGlmaWNhdGUwg AQEBBQADgY0AMIGJAoGBAMEttnihJ7JpksdToPi5ZVGcssUbHn/G+4G KvYuqNxBkSqqM1AanR0BFVEtVCSuq8KS9LLRdQLJ/B1UTMOGz1Pb14 LdLEFaCyfkjNKnUgeKMyzsdhZ52pF9febB+d8cLmvXFve28sTIxLCUK7l4 AgMBAAGjeTB3MB0GA1UdDgQWBBQ50isUEV6uFPZ0L4RbRm41+i1C
- QTA/gBQ50isUEV6uFPZ0L4RbRm41+i1CpaEkpCIwIDEeMBwGA1UEAxM bmx5IENlcnRpZmljYXRlggEAMAwGA1UdEwQFMAMBAf8wDQYJKoZI gYEAThyofbK3hg8AJXbAUD6w6+mz6dwsBmcTWLvYtLQUh86B0zWnV NxfJ7yfo0PkqNnjHfvnb5W07GcfGgLx5/U3iUROObYlwKlr6tQzMoysNQ/Y 52sGsqaOOWpYlAGOaM8j57Nv/eXogQnDRT0txXqoVEbunmM= -----END CERTIFICATE----- subject=/CN=Test-Only Certificate issuer=/CN=Test-Only Certificate --- No client certificate CA names sent --- SSL handshake has read 1143 bytes and written 362 bytes --- New, TLSv1/SSLv3, Cipher is DHE-RSA-AES256-SHA Server public key is 1024 bit SSL-Session: Protocol : SSLv3
- Cipher : DHE-RSA-AES256-SHA Session-ID: 56EA68A5750511917CC42A1B134A8F218C27C9C0241C35C53977A2A8B Session-ID-ctx: Master-Key: 303B60D625B020280F5F346AB00F8A61A7C4BEA707DFA0ED8D2F5237 7FB6EFFC02CE3B48F912D2C8929DB5BE Key-Arg : None Start Time: 1101164382 Timeout : 300 (sec) Verify return code: 18 (self signed certificate) --- GET / HTTP/1.0 HTTP/1.1 200 OK Date: Mon, 22 Nov 2004 22:59:56 GMT Server: Apache
- Last-Modified: Mon, 22 Nov 2004 17:24:56 GMT ETag: "5c911-46-229c0a00" Accept-Ranges: bytes Content-Length: 70 Connection: close Content-Type: text/html Test works. closed Chức năng s_client có nhiều tuỳ chọn hữu ích. Chẳng hạn như tắt/mở (on/off) m (-ssl2 , -ssl3, -tls1). Sau đó khởi động lại Apache và kiểm tra các file đăng nhậ (/usr/local/apache2/logs/) để có thêm thông tin. Chúng ta cũng có thể dùng Ethereal hoặc ssldump. Chúng ta có thể xem một c thông báo Handshake của SSL, và cố gắng tìm ra lí do lỗi nếu không có những Một màn hình nhỏ thực thi việc này trên Ethereal được mô tả trong hình 6.
- Hình 6. Màn hình Ethereal với phương thức SSL Handshake. Kết luận phần I Việc cài đặt và chạy Apache 2 secure cùng giao thức SSL và một chứng chỉ m một của loạt bài này. Trong phần hai tới các bạn sẽ được giới thiều về các thiết thực thi cho mod_ssl, cũng như tiến trình tạo ra một chứng chỉ web server phù
CÓ THỂ BẠN MUỐN DOWNLOAD
Chịu trách nhiệm nội dung:
Nguyễn Công Hà - Giám đốc Công ty TNHH TÀI LIỆU TRỰC TUYẾN VI NA
LIÊN HỆ
Địa chỉ: P402, 54A Nơ Trang Long, Phường 14, Q.Bình Thạnh, TP.HCM
Hotline: 093 303 0098
Email: support@tailieu.vn