Hướng dẫn dùng openssl versions trong PHP
Thứ sáu, 12/09/2014 | 00:00 GMT+7 Show
Nội dung chính
Nội dung chính
OpenSSL là một công cụ dòng lệnh đa năng được dùng cho rất nhiều tác vụ liên quan đến Cơ sở hạ tầng public key (PKI) và HTTPS (HTTP qua TLS). Hướng dẫn này cung cấp một số tính năng phổ biến hữu ích của OpenSSL, bao gồm các ví dụ OpenSSL về việc tạo private key, yêu cầu ký certificate và chuyển đổi định dạng certificate. Cách sử dụng Hướng dẫn này:
Giới thiệu về Certificate Signing Requests (CSR) - Yêu cầu kýNếu bạn muốn lấy certificate SSL từ tổ chức phát hành certificate (CA), bạn phải tạo yêu cầu ký certificate (Certificate Signing Requests - CSR). CSR bao gồm public key và một số thông tin bổ sung (không có private key ở đây). Cả hai thành phần này đều được đưa vào certificate khi nó được ký. Khi nào bạn tạo CSR, bạn sẽ cần cung cấp thông tin liên quan đến certificate. Thông tin này được gọi là Tên phân biệt (DN). Một trường quan trọng trong DN là Common Name (CN), phải là Domain đủ điều kiện chính xác (FQDN) của server định sử dụng certificate. Cũng có thể bỏ qua dấu nhắc tương tác khi tạo CSR bằng cách chuyển các thông tin trên dòng lệnh hoặc từ file. Các mục khác trong DN cung cấp thông tin bổ sung về doanh nghiệp hoặc tổ chức của bạn. Nếu bạn đang mua certificate SSL từ một tổ chức phát hành certificate, thì thông thường các trường bổ sung này, chẳng hạn như “Organization”, phải phản ánh chính xác thông tin chi tiết về tổ chức của bạn. Dưới đây là ví dụ thông tin CSR:
Nếu bạn muốn trả lời không tương tác dấu
nhắc thông tin CSR, bạn có thể thực hiện bằng cách thêm tùy chọn
Đến đây bạn đã hiểu CSR, bạn có thể chuyển sang bất kỳ phần nào của hướng dẫn này mà bạn cần. Tạo CSRsPhần này bao gồm các lệnh OpenSSL có liên quan đến việc tạo CSR (và private key, nếu chúng chưa tồn tại). CSR được dùng để tạo yêu cầu ký - Certificate request SSL từ cơ quan cấp certificate. Lưu ý bạn có thể
thêm thông tin CSR không tương tác với tùy chọn Tạo Private key và CSRMột ví dụ sử dụng là khi muốn sử dụng HTTPS (HTTP qua TLS) để bảo mật web server Apache HTTP hoặc Nginx của bạn và bạn muốn sử dụng Tổ chức phát hành certificate (CA) để cấp certificate SSL. CSR được tạo có thể được gửi đến CA để yêu cầu cấp certificate SSL do CA ký. Nếu CA của bạn hỗ trợ SHA-2, hãy thêm tùy chọn Lệnh này tạo một private key 2048 bit (
Trả lời dấu nhắc thông tin CSR để hoàn tất quy trình. Tùy chọn Tạo CSR từ một private key hiện cóSử dụng phương pháp này nếu bạn đã có private key mà bạn muốn sử dụng để certificate request từ CA. Lệnh này tạo CSR mới (
Trả lời dấu nhắc thông tin CSR để hoàn tất quy trình. Tùy chọn Tạo CSR từ Certificate hiện có và Private keySử dụng phương pháp này nếu bạn muốn gia hạn certificate hiện có nhưng bạn hoặc CA của bạn không có CSR ban đầu vì một số lý do. Về cơ bản, nó giúp bạn tiết kiệm được rắc rối khi nhập lại thông tin CSR, vì nó có thông tin từ certificate hiện có. Lệnh này tạo CSR mới (
Tùy chọn Tạo certificate SSLMột loại certificate phổ biến mà bạn có thể tự cấp là
certificate tự ký . Certificate tự ký là certificate được ký bằng private key của chính nó. Certificate tự ký được dùng để mã hóa dữ liệu cũng như certificate do CA ký, nhưng user sẽ được hiển thị cảnh báo cho biết rằng certificate không được máy tính hoặc trình duyệt của họ tin cậy. Do đó, chỉ nên sử dụng certificate tự ký nếu bạn không cần chứng minh danh tính dịch vụ của bạn với user public, nó phù hợp với môi trường cục bộ của bạn Phần này bao gồm các lệnh OpenSSL liên quan đến việc tạo certificate tự ký. Tạo certificate tự kýVí dụ sử dụng phương pháp này nếu bạn muốn sử dụng HTTPS (HTTP qua TLS) để bảo mật web server Apache HTTP hoặc Nginx của bạn và bạn không cần certificate của bạn phải được ký bởi CA. Lệnh này tạo private key 2048 bit (
Trả lời dấu nhắc thông tin CSR để hoàn tất quy trình. Tùy chọn Tạo certificate tự ký từ private key hiện cóSử dụng phương pháp này nếu bạn đã có private key mà bạn muốn tạo certificate tự ký với nó. Lệnh này
tạo certificate tự ký (
Trả lời dấu nhắc thông tin CSR để hoàn tất quy trình. Tùy chọn Tạo certificate tự ký từ private key hiện có và CSRSử dụng phương pháp này nếu bạn đã có private key và CSR và bạn muốn tạo certificate tự ký với chúng. Lệnh này tạo certificate tự ký (
Tùy chọn Xem certificateCác file certificate và CSR được mã hóa ở định dạng PEM, mà ta không thể đọc được. Phần này bao gồm các lệnh OpenSSL sẽ xuất ra các thông tin chứng chỉ trong file được mã hóa PEM. Xem các mục CSRLệnh này cho phép bạn xem và xác minh nội dung của CSR (
Xem mục nhập certificateLệnh này cho phép bạn xem nội dung của certificate (
Xác minh Certificate đã được CA kýSử dụng lệnh này để xác minh certificate (
Khóa privatePhần này bao gồm các lệnh OpenSSL cụ thể để tạo và xác minh private key. Tạo private keySử dụng lệnh này để tạo private key 2048 bit, được bảo vệ bằng password (
Nhập password khi được yêu cầu để hoàn tất quá trình. Xác minh private keySử dụng lệnh này để kiểm tra xem private key (
Nếu private key của bạn được bảo vệ bởi passphare , bạn sẽ cần nhập passphare. Sau khi thành công, khóa không được mã hóa sẽ được xuất trên terminal. Xác minh private key trùng với certificate và CSRSử dụng các lệnh này để xác minh xem private key (
Nếu kết quả của mỗi lệnh giống hệt nhau thì private key, certificate và CSR có liên quan với nhau. Mã hóa private keyThao tác này lấy một private key không được mã hóa (
Nhập passphare mong muốn của bạn để mã hóa private key. Giải mã private keyThao tác này lấy một private key được mã hóa (
Nhập passphare cho khóa được mã hóa khi được yêu cầu. Chuyển đổi định dạng certificateTất cả các certificate mà ta đang làm việc đều là certificate X.509 được mã hóa ASCII PEM. Có nhiều loại mã hóa certificate và các loại containers khác; một số ứng dụng thích các định dạng nhất định hơn những ứng dụng khác. Ngoài ra, nhiều định dạng trong số này có thể chứa nhiều mục, chẳng hạn như private key, certificate và certificate CA, trong một file duy nhất. OpenSSL được dùng để chuyển đổi certificate sang và từ nhiều định dạng khác nhau. Phần này sẽ trình bày một số chuyển đổi có thể xảy ra. Chuyển đổi PEM sang DERSử dụng lệnh này nếu bạn muốn chuyển đổi certificate được mã hóa PEM (
Định dạng DER thường được sử dụng với Java. Chuyển đổi DER sang PEMSử dụng lệnh này nếu bạn
muốn chuyển đổi certificate được mã hóa DER (
Chuyển đổi PEM sang PKCS7Sử dụng lệnh này nếu bạn muốn thêm certificate PEM (
Lưu ý bạn có thể sử dụng một hoặc nhiều tùy chọn File PKCS7, còn gọi là P7B, thường được sử dụng trong Java Keystores và Microsoft IIS (Windows). Chúng là các file ASCII có thể chứa certificate và certificate CA. Chuyển đổi PKCS7 sang PEMSử dụng lệnh này nếu bạn muốn chuyển đổi file
Lưu ý nếu file PKCS7 của bạn có nhiều mục trong đó (ví dụ: certificate và certificate trung gian CA), thì file PEM được tạo sẽ chứa tất cả các mục trong đó. Chuyển đổi PEM sang PKCS12Sử dụng
lệnh này nếu bạn muốn lấy một private key (
Có thể cần nhập password bảo vệ hoặc có thể để trống. Lưu ý bạn có thể thêm một chuỗi certificate vào file PKCS12 bằng cách nối các certificate với nhau trong một file PEM ( File PKCS12, còn gọi là file PFX, thường được sử dụng để nhập và xuất certificate trong Micrsoft IIS (Windows). Chuyển đổi PKCS12 sang PEMSử dụng lệnh này nếu bạn muốn chuyển đổi file
Lưu ý nếu file PKCS12 của bạn có nhiều mục trong đó (ví dụ: certificate và private key), thì file PEM được tạo sẽ chứa tất cả các mục trong đó. Kết luậnTrên đây bao gồm hầu hết các cách sử dụng phổ biến với OpenSSL, Certificate SSL! OpenSSL có nhiều công dụng khác mà không được đề cập ở đây, bạn có thể tham khảo khi cần ở trang chủ OpenSSL. Các tin trước Cài đặt Nginx trên CentOS 7 2014-07-22 Cài đặt Bảo mật cơ bản cho CentOS 7 2014-07-21 Cài đặt Linux Apache MySQL PHP (LAMP) On CentOS 7 2014-07-21 Cài đặt và sử dụng yum repositories trên Centos-6 vps 2013-10-01 Sử dụng SSH để kết nối tới Remote Server trong Ubuntu 2013-09-10 Backup postgresql databases trên Ubuntu vps 2013-08-28 Sử dụng Cron để tự động hóa các công việc việc trên server 2013-08-23 Bảo mật postgresql trên Ubuntu vps 2013-08-22 Sử dụng sftp-to-securely-transfer-files với remote-server 2013-08-13 Quản trị packages trong Ubuntu và Debian với apt-get-apt-cache 2013-08-06 |