Cấu hình OCSP stapling cho Apache

Về OCSP (Online Certificate Status Protocol)

OCSP là một giao thức để kiểm tra tình trạng hợp lệ của một thư số SSL ở thời gian thực. Giao thức này được sinh ra nhằm thay thế cho cách kiểm tra truyền thống dùng CRL (Certificate revocation list). Với cách kiểm tra CRL, trình duyệt sẽ tải một danh sách chứa các chứng thư số SSL đã bị thu hồi của mỗi CA, và việc này sẽ làm chậm quá trình thiết lập kết nối SSL giữa trình duyệt và máy chủ web. Với giao thức OCSP, trình duyệt sẽ gửi một yêu cầu đến một địa chỉ truy vấn OCSP của CA và nhận được một kết quả có chứa tình trạng hiệu lực của chứng thư số SSL của website. Hình dưới đây cho thấy OCSP URI của Globalsign.

p

OCSP có hai tồn đọng: tính riêng tư và gia tăng tải trên máy chủ truy vấn OCSP của CA.

Việc OCSP yêu cầu trình duyệt liên hệ với CA để xác nhận tính hợp lệ của chứng thư số SSL trên website sẽ làm mất tính riêng tư. CA sẽ biết được những trang web nào đang được truy cập và thông tin của người đang truy cập chúng.

Nếu một trang web HTTPS được rất nhiều khách truy cập, thì máy chủ truy vấn OCSP của CA sẽ phải xử lý tất cả các yêu cầu OCSP được thực hiện bởi trình duyệt của từng khách khách truy cập.

Về OCSP stapling

Khi máy chủ web được cấu hình OCSP stapling hoàn chỉnh, đầu tiên máy chủ sẽ thực hiện truy vấn OCSP đến máy chủ OCSP của CA và lưu trữ kết quả trên bộ nhớ đệm của máy chủ web. Máy chủ web sẽ tự động thực hiện lại quá trình truy vấn OCSP và cập nhật kết quả này sau một khoảng thời gian nhất định. Kết quả truy vấn OCSP này sẽ được được đính kèm trong quá trình thực hiện TLS Handshake giữa trình duyệt và máy chủ web thông qua thuộc tính mở rộng Certificate Status Request. Từ đó trình duyệt có thể sử dụng ngay kết quả kiểm tra tình trạng hợp lệ của chứng thư số SSL mà không cần phải thực hiện truy vấn đến máy chủ OCSP của CA.

Kiểm tra hỗ trợ OCSP stapling

Bạn cần phải kiểm tra phiên bản của Apache để biết có hỗ trợ OCSP stapling hay không. OCSP stapling được hỗ trợ kể từ phiên bản Apache 2.3.3 trở đi.

Trên Ubuntu bạn gõ lệnh:

apache2 -v

Trên CentOS/Fedora bạn gõ lệnh:

httpd -v

 

Tải về CABundle

Bạn cần phải tải về máy chủ web CABundle (Intermediate CA và Root CA) tương ứng với chứng thư số SSL mà bạn đã mua cho website.

Bạn cần nối cả hai file Intermediate CA và Root CA lại thành một file duy nhất và đặt tên là /usr/local/ssl/certificate/cabundle.crt theo thứ tự:

Intermediate CA
Root CA

Ví dụ CABundle của Globalsign Secure EV sẽ có nội dung như sau:

—–BEGIN CERTIFICATE—–MIIFKzCCBBOgAwIBAgIQfuFKb2/v8tN/P61lTTratDANBgkqhkiG9w0BAQsFADCByjELMAkGA1UEBhMCVVMxFzAVBgNVBAoTDlZlcmlTaWduLCBJbmMuMR8wHQYDVQQLExZWZXJpU2lnbiBUcnVzdCBOZXR3b3JrMTowOAYDVQQLEzEoYykgMjAwNiBWZXJpU2lnbiwgSW5jLiAtIEZvciBhdXRob3JpemVkIHVzZSBvbmx5MUUwQwYDVQQDEzxWZXJpU2lnbiBDbGFzcyAzIFB1YmxpYyBQcmltYXJ5IENlcnRpZmljYXRpb24gQXV0aG9yaXR5IC0gRzUwHhcNMTMxMDMxMDAwMDAwWhcNMjMxMDMwMjM1OTU5WjB3MQswCQYDVQQGEwJVUzEdMBsGA1UEChMUU3ltYW50ZWMgQ29ycG9yYXRpb24xHzAdBgNVBAsTFlN5bWFudGVjIFRydXN0IE5ldHdvcmsxKDAmBgNVBAMTH1N5bWFudGVjIENsYXNzIDMgRVYgU1NMIENBIC0gRzMwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDYoWV0I+grZOIy1zM3PY71NBZI3U9/hxz4RCMTjvsR2ERaGHGOYBYmkpv9FwvhcXBC/r/6HMCqo6e1cej/GIP23xAKE2LIPZyn3i4/DNkd5y77Ks7Imn+Hv9hMBBUyydHMlXGgTihPhNk1++OGb5RT5nKKY2cuvmn2926OnGAE6yn6xEdC0niY4+wLpZLct5q9gGQrOHw4CVtm9i2VeoayNC6FnpAOX7ddpFFyRnATv2fytqdNFB5suVPuIxpOjUhVQ0GxiXVqQCjFfd3SbtICGS97JJRL6/EaqZvjI5rq+jOrCiy39GAI3Z8czd0tAWaAr7MvKR0juIrhoXAHDDQPAgMBAAGjggFdMIIBWTAvBggrBgEFBQcBAQQjMCEwHwYIKwYBBQUHMAGGE2h0dHA6Ly9zMi5zeW1jYi5jb20wEgYDVR0TAQH/BAgwBgEB/wIBADBlBgNVHSAEXjBcMFoGBFUdIAAwUjAmBggrBgEFBQcCARYaaHR0cDovL3d3dy5zeW1hdXRoLmNvbS9jcHMwKAYIKwYBBQUHAgIwHBoaaHR0cDovL3d3dy5zeW1hdXRoLmNvbS9ycGEwMAYDVR0fBCkwJzAloCOgIYYfaHR0cDovL3MxLnN5bWNiLmNvbS9wY2EzLWc1LmNybDAOBgNVHQ8BAf8EBAMCAQYwKQYDVR0RBCIwIKQeMBwxGjAYBgNVBAMTEVN5bWFudGVjUEtJLTEtNTMzMB0GA1UdDgQWBBQBWavn3ToLWaZkY9bPIAdX1ZHnajAfBgNVHSMEGDAWgBR/02Wnwt3su/AwCfNDOfoCrzMxMzANBgkqhkiG9w0BAQsFAAOCAQEAQgFVe9AWGl1Y6LubqE3X89frE5SG1n8hC0e8V5uSXU8FnzikEHzPg74GQ0aNCLxq1xCm+quvL2GoY/Jl339MiBKIT7Np2f8nwAqXkY9W+4nEqLuSLRtzsMarNvSWbCAI7woeZiRFT2cAQMgHVHQzO6atuyOfZu2iRHA0+w7qAf3PeHTfp61Vt19N9tY/4IbOJMdCqRMURDVLtt/JYKwMf9mTIUvunORJApjTYHtcvNUwLwfORELEC5n+5p/8sHiGUW3RLJ3GlvuFgrsEL/digO9i2n/2DqyQuFa9eT/ygG6j2bkPXToHHZGThkspTOHcteHgM52zyzaRS/6htO7w+Q==—–END CERTIFICATE———-BEGIN CERTIFICATE—–MIIE0zCCA7ugAwIBAgIQGNrRniZ96LtKIVjNzGs7SjANBgkqhkiG9w0BAQUFADCByjELMAkGA1UEBhMCVVMxFzAVBgNVBAoTDlZlcmlTaWduLCBJbmMuMR8wHQYDVQQLExZWZXJpU2lnbiBUcnVzdCBOZXR3b3JrMTowOAYDVQQLEzEoYykgMjAwNiBWZXJpU2lnbiwgSW5jLiAtIEZvciBhdXRob3JpemVkIHVzZSBvbmx5MUUwQwYDVQQDEzxWZXJpU2lnbiBDbGFzcyAzIFB1YmxpYyBQcmltYXJ5IENlcnRpZmljYXRpb24gQXV0aG9yaXR5IC0gRzUwHhcNMDYxMTA4MDAwMDAwWhcNMzYwNzE2MjM1OTU5WjCByjELMAkGA1UEBhMCVVMxFzAVBgNVBAoTDlZlcmlTaWduLCBJbmMuMR8wHQYDVQQLExZWZXJpU2lnbiBUcnVzdCBOZXR3b3JrMTowOAYDVQQLEzEoYykgMjAwNiBWZXJpU2lnbiwgSW5jLiAtIEZvciBhdXRob3JpemVkIHVzZSBvbmx5MUUwQwYDVQQDEzxWZXJpU2lnbiBDbGFzcyAzIFB1YmxpYyBQcmltYXJ5IENlcnRpZmljYXRpb24gQXV0aG9yaXR5IC0gRzUwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCvJAgIKXo1nmAMqudLO07cfLw8RRy7K+D+KQL5VwijZIUVJ/XxrcgxiV0i6CqqpkKzj/i5Vbext0uz/o9+B1fs70PbZmIVYc9gDaTY3vjgw2IIPVQT60nKWVSFJuUrjxuf6/WhkcIzSdhDY2pSS9KP6HBRTdGJaXvHcPaz3BJ023tdS1bTlr8Vd6Gw9KIl8q8ckmcY5fQGBO+QueQA5N06tRn/Arr0PO7gi+s3i+z016zy9vA9r911kTMZHRxAy3QkGSGT2RT+rCpSx4/VBEnkjWNHiDxpg8v+R70rfk/Fla4OndTRQ8Bnc+MUCH7lP59zuDMKz10/NIeWiu5T6CUVAgMBAAGjgbIwga8wDwYDVR0TAQH/BAUwAwEB/zAOBgNVHQ8BAf8EBAMCAQYwbQYIKwYBBQUHAQwEYTBfoV2gWzBZMFcwVRYJaW1hZ2UvZ2lmMCEwHzAHBgUrDgMCGgQUj+XTGoasjY5rw8+AatRIGCx7GS4wJRYjaHR0cDovL2xvZ28udmVyaXNpZ24uY29tL3ZzbG9nby5naWYwHQYDVR0OBBYEFH/TZafC3ey78DAJ80M5+gKvMzEzMA0GCSqGSIb3DQEBBQUAA4IBAQCTJEowX2LP2BqYLz3q3JktvXf2pXkiOOzEp6B4Eq1iDkVwZMXnl2YtmAl+X6/WzChl8gGqCBpH3vn5fJJaCGkgDdk+bW48DW7Y5gaRQBi5+MHt39tBquCWIMnNZBU4gcmU7qKEKQsTb47bDN0lAtukixlE0kF6BWlKWE9gyn6CagsCqiUXObXbf+eEZSqVir2G3l6BFoMtEMze/aiCKm0oHw0LxOXnGiYZ4fQRbxC1lfznQgUy286dUV4otp6F01vvpX1FQHKOtw5rDgb7MzVIcbidJ4vEZV8NhnacRHr2lVz2XTIIM6RUthg/aFzyQkqFOFSDX9HoLPKsEdao7WNq—–END CERTIFICATE—–

Cấu hình OCSP cache

Bạn cần mở file cấu hình của Apache (thường được lưu tại /etc/httpd/conf/extra/httpd-ssl.conf) và thêm vào dòng sau ở bên ngoài block cấu hình VirtualHost:a

SSLStaplingCache shmcb:/tmp/stapling_cache(128000)

Cấu hình OCSP stapling cho VirtualHost

Bên trong block cấu hình VirtualHost của site, bạn bổ sung các dòng sau:

SSLCACertificateFile /usr/local/ssl/certificate/cabundle.crt

SSLUseStapling on

Restart lại Apache

Trên Ubuntu bạn gõ lệnh:

service apache2 restart

Trên CentOS/Fedora bạn gõ lệnh:

service httpd restart

Kiểm tra OCSP stapling

Bạn có thể dùng OpenSSL để kiểm tra hoạt động của OCSP stapling bằng cách gõ lệnh sau (thay thế www.globalsign.com.vn bằng tên miền của bạn):

echo QUIT | openssl s_client –connect www.globalsign.com.vn.443 -status 2> /dev/null | grep -A 17 ‘OCSP response:’ | grep -B 17 ‘Next Update’

Nếu kết quả trả về có dạng như sau thì tức là bạn đã cấu hình OCSP cho máy chủ web thành công. Ngược lại sẽ không có kết quả nào được hiển thị:

OCSP response:

======================================

OCSP Response Data:

OCSP Response Status: successful (0x0)

Response Type: Basic OCSP Response

Version: 1 (0x0)

Responder Id: 9BF91709B76BCA37C883E3D0020DFD91E48785BF

Produced At: Sep  8 20:08:21 2015 GMT

Responses:

Certificate ID:

Hash Algorithm: sha1

Issuer Name Hash: 400B467AF1E6B2D30983BA0D607E7E59374824C4

Issuer Key Hash: C39CF3FCD3460834BBCE467FA07C5BF3E208CB59

Serial Number: 45A7

Cert Status: good

This Update: Sep  8 20:08:21 2015 GMT

Next Update: Sep 15 20:08:21 2015 GMT

Bạn cũng có thể dùng Qualys SSL Tester để kiểm tra: https://www.ssllabs.com/ssltest/

Trong kết quả test, bạn kiểm tra mục “OCSP stapling”

a