You are on page 1of 4

1

BÀI THỰC HÀNH 1


Cài đàt PKI với OpenSSL
1.Mục đích

Thao tác thực tế với public key encryption, public key cerfiticae, cerfiticate authority và chức
năng của hạ tầng khóa công khai (PKI)

2.Tổng quan

Các tác vụ chính của bài thực hành gồm:

-Thiết lập một CA (cerfiticate authority)

-Phát ra một chứng chỉ số (digital certificate) cho công ty

-Cài đặt một HTTPS server dùng certificate

-Kiểm tra server và quan sát certificate và PKI làm việc như thế nào

3. Chuẩn bị

Dùng hai máy ảo Linux và windows 7. Máy ảo Windows chỉ dùng để kiểm thử cấu hình.

Trên thực tế CA và HTTPS server sẽ chạy trên hai máy khác nhau. Để đơn giản ở đây chỉ dùng
một máy Linux cho cả hai.

Sẽ dùng lệnh và thư viện OpenSSL. Cần cài đặt OpenSSl vào máy Linux

apt install openssl

Download tập tin openssl-1.0.1e.tar.gz (hoặc bản mới nhất) từ trang www.openssl.org/source/

Giải nén và cài đặt thư viện OpenSSL

./config

make

make test

make install

Đặt tên miền cho website, ví dụ fitptitsaigon.com

4. Cài đặt CA
2

Một CA là một thực thể được tin cậy, phát hành các chứng chỉ số DC ( Digital Cerfiticate). Một
DC chứng nhận sự sở hữu một public key. Một số CA thương mại được xem như các root CA, ví
dụ VeriSign, GlobalSign,…

Trong khi một DC được ký bởi một CA, chứng chỉ của một root CA là tự ký. Các chứng chỉ của
các root CA thường được nạp trước vào hầu hết các hệ điều hành, các trình duyệt web cũng như
các ứng dụng dựa vào PKI. Các chứng chỉ này được tín nhiệm vô điều kiện.

Bước 1. Hiệu chỉnh file cấu hình

Một số lệnh OpenSSL như ca, req và x509 dựa trên một file cấu hình. Mặc định file cấu hình
(openssl.cnf) được đặt tại thư mục /ect/pki/tls

Tạo thư mục labpki trong thư mục home. chép file cấu hình vào thư mục labpki để thực hiện mọi
thứ trong thư mục này.

Hiệu chỉnh file cấu hình để phù hợp với cài đặt riêng. Có thể giữ hầu hết các cài đặt mặc đinh
trong file này. Tuy nhiên, cần thay đổi trong phần [ca]. Tạo thư mục phụ như trong phần
[CA_default). Tạo file rổng indext.txt (touch index.txt), đối với file serial ghi một số bất kỳ

ví dụ

Bước 2. Cài đặt một root CA dùng OpenSSL


Dùng lệnh sau:
3

openssl req –new –x509 –keyout ca.key –out ca.crt –config openssl.cnf
Chọn mật khẩu và ghi nhớ để dùng sau này mỗi khi ký một chứng chỉ cho client.
Điền các thông tin cần thiết, các thông tin này sẽ được bao gồm trong chứng chỉ.
Kết quả lệnh trên sẽ tạo ra hai file: ca.key chứa khóa riêng của CA và ca.crt chứa chứng chỉ khóa
công khai (public key certificate)
Bước 3. Phát hành các chứng chỉ
Khi dùng OpenSSL cần phải thực hiện ba tác vụ sau để phát hành một chứng chỉ cho client
-Tạo cặp khóa cho client
-Đệ trình yêu cầu Certificate Signing Request
-Tạo/ký chứng chỉ cho public key
Trong bước này một chứng chỉ sẽ cấp cho công ty ( fitptitsaigon.com) dùng root CA đã tạo ở
trên.

 Tạo cặp khóa


Công ty phải tự tạo cặp khóa cho riêng mình. Dùng lệnh
openssl genrsa –des3 –out server.key 1024

chọn mật khẩu và ghi nhớ lại mật khẩu để dùng sau.
khóa được chứa trong file server.key
 Đệ trình một yêu cầu cerfiticate signing request
openssl req –new –key server.key –out server.csr –config openssl.cnf
(dùng fitptitsaigon.com như là tên chung của CSR)
CSR cần được gửi đến CA để yêu cầu CA phát sinh một chứng chỉ cho CSR.

 Tạo một chứng chỉ


Trên thực tế, các file CSR thường được gửi đến một CA tin cậy để ký. Các CA sẽ khởi phát
một chứng chỉ cho một CSR vừa nhận sau khi chắc chắn rằng thông tin nhận diện trong CSR
trùng với nhận dạng thật của client. Trong phần này của bài sẽ dùng CA vừa tạo ở trên để
phát hành một chứng chỉ SSL/TLS cho client (fitptitsaigon.com). Dùng các lệnh OpenSSL
sau đây:

openssl ca –in server.csr –out server.crt –cert ca.crt –keyfile ca.key –config openssl.cnf

Nếu phát sinh thành công thì chứng chỉ sẽ được chứa trong tập tin server.crt

Nếu OpenSSL từ chối phát sinh chứng chỉ, rất có thể tên trong CSR không trùng với tên
trong CA. Các luật so trùng được chỉ định trong file cấu hình dưới phần [policy_mach].
Trong trường hợp này, hãy thay đổi tên trong CSR để phù hợp với chính sách hoặc có thể
4

thay đổi chính sách. File cấu hình cũng có thể chấp nhận chính sách khác (policy_anything),
không có giới hạn. Có thể thay

“policy = policy_match” ===> “policy = policy_anything”


Khi chứng chỉ đã được phát hành, có thể hiển thị thông tin trong chứng chỉ bằng cách dùng lệnh
openssl x509 –in server.crt –noout –text
(Xem manual của x509 để tra cứu những thông tin cần biết)
Bước 4. Dùng PKI và chứng chỉ để an toàn cho web site
Mở host file trong thư mục etc trên máy Linux và thêm dòng
127.0.0.1 fitptitsaigon.com
Kế tiếp cần mở một web server đơn giản với chứng chỉ đã có.

 Kết hợp khóa mật và chứng chỉ trong một file

cp server.key server.pem
cat server.crt >> server.pem
 Mở web server đơn giản (HTTPS server) với chứng chỉ server.pem bằng lệnh

openssl s_server –cert server.pem –www –accept 8080

Dùng firefox để truy cập https://fitptitisaigon.com:8080

Có lỗi, tại sao?


Khắc phục như thế nào?

Truy cập trang web trên từ máy windows 7 dùng IE hoặc Chrome
Bước 5. Thực hiện kiểm tra tính hiệu quả giữa RSA và AES
openssl speed rsa
openssl speed aes
Tham khảo trang man speed để tra cứu thông tin
Bước 6. Chữ ký số
Tham khảo man page của OpenSSL để thực hành phát sinh chữ ký số.

You might also like