[PKI] Hướng dẫn tạo file CSR và private key bằng command line trên Linux

2263

Có rất là nhiều công cụ online có thể hỗ trợ bạn tạo file CSR và private key tương ứng. Nhưng nếu bạn thấy thích và có nhu cầu làm bằng lệnh Linux thì bài viết này mình sẽ nói về cách sử dụng câu lệnh ‘openssl‘ trên Linux để tạo CSR bằng command line.

CSR là file chứng chỉ số chứa thông tin tên miền cần được đăng ký với nhà cung cấp SSL để họ kí (sign) chứng thực nội dung chứng chỉ số tương ứng tên miền mà bạn muốn đăng ký. Từ đó bạn mới có thể hoạt động website ở phương thức HTTPS được.

 
1. Kiểm tra và cài đặt OpenSSL

Bạn cần đảm bảo là đã cài gói ứng dụng và thư viện OpenSSL lên server của mình. Đây là gói phần mềm ứng dụng rất là phổ biến nên thường sẽ có sẵn trong hệ thống, nhưng mà bạn có thể kiểm tra và cài mới nếu chưa có như sau .

– Kiểm tra đã OpenSSL hay chưa, nếu có thì sẽ xuất ra như sau.
+ CentOS/RedHat

# rpm -qa | grep -i openssl
openssl-1.0.1e-48.el6_8.1.x86_64
openssl-devel-1.0.1e-48.el6_8.1.x86_64
openssl-1.0.1e-48.el6_8.1.i686

 
– Nếu chưa có thì cài mới như sau :

# yum install -y openssl openssl-devel openssl-dev

 
+ Debian/Ubuntu

# dpkg -l | grep -i openssl
ii libgnutls-openssl27:amd64 2.12.23-12ubuntu2.4 amd64 GNU TLS library - OpenSSL wrapper
ii openssl 1.0.1f-1ubuntu2.16 amd64 Secure Sockets Layer toolkit - cryptographic utility

 
– Nếu chưa có thì cài mới như sau :

# apt-get install -y openssl

 

2. Khởi tạo CSR

Có 2 cách để khởi tạo cặp file CSR và private key như sau. Trong đó key length cho key phải là từ 2048 trở lên. Lưu ý phần nhập thông tin cho file CSR mình sẽ note ở dưới chung phần này.

Cách 1 : Khởi tạo riêng file private key và CSR sau

+ Khởi tạo file private key

# openssl genrsa -out demo.cuongquach.com.key 2048

 
+ Khởi tạo CSR với input private key vừa tạo

# openssl req -new -sha256 -key demo.cuongquach.com.key -out demo.cuongquach.com.csr

 

Cách 2 : tạo private key và CSR cùng dòng lệnh đồng thời

# openssl req -new -newkey rsa:2048 -nodes -keyout demo.cuongquach.com.key -out demo.cuongquach.com.csr

Generating a 2048 bit RSA private key
......+++
...............+++
writing new private key to 'demo.cuongquach.com.key'
-----
You are about to be asked to enter information that will be incorporated
into your certificate request.
What you are about to enter is what is called a Distinguished Name or a DN.
There are quite a few fields but you can leave some blank
For some fields there will be a default value,
If you enter '.', the field will be left blank.
-----
Country Name (2 letter code) [XX]:VN
State or Province Name (full name) []:HCM
Locality Name (eg, city) [Default City]:HCM
Organization Name (eg, company) [Default Company Ltd]:demo.cuongquach.com
Organizational Unit Name (eg, section) []:IT
Common Name (eg, your name or your server's hostname) []:demo.cuongquach.com
Email Address []:admin@cuongquach.com

Please enter the following 'extra' attributes
to be sent with your certificate request
A challenge password []:
An optional company name []:

 

Lưu ý nội dung nhập nhập vào file CSR

TrườngNội dungVí dụ
Common Namethông tin tên miền mà bạn muốn đăng ký chứng chỉ SSL HTTPS cho tên miền đó.

Lưu ý : trường quan trọng nhất. Phải điền chính xác thông tin từng chữ.
Vd 1:
- Nếu bạn đăng ký cho tên miền "http://demo.cuongquach.com/" thì bạn phải điền thông tin CN là :

demo.cuongquach.com

Vd 2:
- Nếu bạn đăng ký wildcard ceritificate thì phải thêm prefix như sau

*.demo.cuongquach.com
Organization Nametên công ty/tổ chức của bạn hoặc nếu là cá nhân thì có thể khai báo lại tên của domain bạn đăng ký.demo.cuongquach.com
Organizational Unitbộ phận phòng ban chịu trách nhiệm tạo file CSR.IT
City or Localitythành phố nơi bạn hoặc tổ chức/công ty bạn đang hoạt động.HCM
State or Provincebang hoặc vùng miền của nơi bạn hoặc tổ chức/công ty đang hoạt động.HCM
Country2 kí tự chuẩn ISO đại diện cho tên đất nước. Ví dụ : US, UK, VN,..VN

– Để phần ‘challenge password‘ trống.
Backup nội dung file private key cẩn thận. Mất là coi như toi luôn cặp chứng chỉ số đăng ký với nhà cung cấp SSL.

 
3. Kiểm tra nội dung file CSR

– Bạn có thể kiểm tra lại nội dung file CSR xem các thông tin điền vào đã đúng hay chưa bằng lệnh sau :

# openssl req -noout -text -in demo.cuongquach.com.csr
Certificate Request:
    Data:
        Version: 0 (0x0)
        Subject: C=VN, ST=HCM, L=HCM, O=demo.cuongqu\xC3\x83ach.com, OU=IT, CN=demo.cuongquach.com/emailAddress=admin@cuongquach.com
        Subject Public Key Info:
            Public Key Algorithm: rsaEncryption
                Public-Key: (2048 bit)
....
....
....

 
– Sau cùng bạn đã hoàn tất và có thể copy nội dung file text ‘demo.cuongquach.com.csr‘ vào phần xác thực nội dung CSR phía nhà cung cấp SSL nhằm đăng ký chứng chỉ SSL Ceritificate mà bạn muốn đăng ký.

Cám ơn các bạn đã theo dõi bài viết nếu có bất kì thắc mắc gì, đừng ngại comment ở dưới bài viết nhé.

Previous article[Linux] Hướng dẫn sử dụng lệnh ‘chpasswd’ đổi mật khẩu user khi chạy batch-mode Linux
Next article[DirectAdmin] Hướng dẫn fix lỗi lộ thông tin user đăng nhập DB của phpMyAdmin trên DA
Bạn đang theo dõi website "https://cuongquach.com/" nơi lưu trữ những kiến thức tổng hợp và chia sẻ cá nhân về Quản Trị Hệ Thống Dịch Vụ & Mạng, được xây dựng lại dưới nền tảng kinh nghiệm của bản thân mình, Quách Chí Cường. Hy vọng bạn sẽ thích nơi này !

2 COMMENTS

  1. Mình mất file key để tạo file crt trước đó. Bây giờ mình tạo file key mới thì nó báo không trùng với file crt. Bạn có giải pháp nào cho mình không?

    • Hi bạn,

      File key sẽ map ra file crt tương ứng. Nên nếu bạn mất file key thì file crt cũng vô dụng. Vì vậy nếu bạn khởi tạo file key mới thì cũng phải sử dụng file crt mới tương ứng.

LEAVE A REPLY

Please enter your comment!
Please enter your name here