OpenSSL trong PHP

Một phần của tài liệu Tài liệu Đồ án tốt nghiệp Giải pháp xác thực số pdf (Trang 56 - 58)

4. Nhiều tính năng cao cấp liên quan đến CSDL như hỗ trợ View

3.3.2OpenSSL trong PHP

3.3.2.1 Giới thiệu

Trong PHP 5 đặc biệt hỗ trợ thư viện openssl với rất nhiều hàm hỗ trợ việc mã hóa và sinh các cặp khóa công khai và bí mật cũng như tạo các chứng chỉ số. Để sử dụng được thư viện openssl để tạo chứng chỉ và sinh các khóa cần phải cài đặt hợp lệ openssl.cnf trong hệ thống. Php sẽ tìm tới openssl.cnf và sử dụng các nhóm logic.

• Môi trường biến openssl_conf ssleay_conf, nếu thiết lập sẽ được sử dụng như là đường dẫn cấu hình file.

• File openssl.cnf sẽ được giả như tìm thấy ở một miền chứng nhận mặc định như là định cấu hình trong một thời gian cho opensl.dll biên dịch. Thông thường mặc định đường dẫn là

c:\usr\local\ssl\openssl.cnf.

• Để sử dụng được thư viện openssl cần phải cấu hình lại file php.ini. Bỏ dấu ”;” ở trước ;extension=php_openssl.dll.

Chứng chỉ:

• Trả lại giá trị X.509 sử dụng hàm openssl_x509_read().

• Chuỗi có định dạng file://path/to/cert.pem;

• Chuỗi bao gồm nội dung chứng chỉ mã hóa PEM.

Khóa công khai /khóa bí mật:

• Lấy giá trị khóa nhờ hàm openssl_get_publickey()

openssl_get_privatekey().

• Với khóa công khai chỉ có thể là định dạng X.509.

• Chuỗi có định dạng file://path/to/file.pem.

• Chuỗi bao gồm nội dung của chứng chỉ /khóa, mã hóa PEM.

• Với khóa bí mật bạn có thể sử dụng cú pháp array($key, $passphrase). $key có thể sử dụng lấy từ một file hoặc từ nội dung ký hiệu văn bản. $passphrase là khóa cho khóa bí mật, có thể có, có thể không có.

3.3.2.3 Một số hàm trong OpenSSL

openssl_csr_export_to_file: Tạo chứng chỉ lưu vào file.

openssl_csr_export: Tạo chứng chỉ là một chuỗi.

openssl_csr_get_public_key: Trả lại giá trị khóa công khai từ chứng chỉ.

openssl_csr_get_subject: Trả lại thông tin chủ thể của chứng chỉ.

openssl_csr_sign: Ký và sinh chứng chỉ.

openssl_error_string: Trả lại thông báo lỗi openssl.

openssl_free_key: Gải phóng khóa.

openssl_get_privatekey: Tên hiệu của openssl_pkey_get_private() openssl_get_publickey: Tên hiệu của openssl_pkey_get_public() openssl_open: Mở dữ liệu được mã hóa.

openssl_pkcs7_encrypt: Mã hóa thông điệp theo định dạng pkcs7.

openssl_pkcs7_sign: Ký thông điệp theo định dạng pkcs7.

openssl_pkcs7_verify: Xác thực chữ ký theo định dạng pkcs7.

openssl_pkey_free: Giải phóng khóa bí mật.

openssl_pkey_get_details: Trả lại một mảng với mô tả về khóa (bits, pkey, type) (adsbygoogle = window.adsbygoogle || []).push({});

openssl_pkey_get_private: Lấy khóa bí mật.

openssl_pkey_get_public: Trích khóa công khai từ chứng chỉ và chuẩn bị sử dụng.

openssl_pkey_new: Sinh khóa bí mật mới.

openssl_private_decrypt: Giải mã với khóa bí mật.

openssl_private_encrypt: Mã hóa với khóa bí mật.

openssl_public_decrypt: Giải mã với khóa công khai.

openssl_public_encrypt: Mã hóa với khóa công khai.

openssl_sign: Sinh chữ ký.

openssl_verify: Xác thực chữ ký

openssl_x509_check_private_key: Kiểm tra khóa bí mật có phù hợp với

chứng chỉ.

openssl_x509_export_to_file: Tạo chứng chỉ và lưu vào file.

openssl_x509_export: Tạo chứng chỉ là một chuỗi.

openssl_x509_free: Giải phóng chứng chỉ.

openssl_x509_parse: Tính toán chứng chỉ và trả lại giá trị là một mảng.

openssl_x509_read: Tính toán chứng chỉ và trả lại nguồn định danh cho nó.

Một phần của tài liệu Tài liệu Đồ án tốt nghiệp Giải pháp xác thực số pdf (Trang 56 - 58)