Hôm nay chúng ta chuyển sang phần thực hành. Hãy bắt đầu bằng cách thiết lập CA của chúng tôi dựa trên thư viện mật mã nguồn mở chính thức openSSL. Thuật toán này đã được thử nghiệm bằng Windows 7.
Khi openSSL được cài đặt, chúng ta có thể thực hiện nhiều thao tác mã hóa khác nhau (chẳng hạn như tạo khóa và chứng chỉ) thông qua dòng lệnh.
Thuật toán của các hành động như sau:
Tải xuống bản phân phối cài đặt openssl-1.1.1g.
openSSL có các phiên bản khác nhau. Tài liệu về Rutoken nói rằng cần có openSSL phiên bản 1.1.0 hoặc mới hơn. Tôi đã sử dụng phiên bản openssl-1.1.1g. Bạn có thể tải xuống openSSL từ trang web chính thức, nhưng để cài đặt dễ dàng hơn, bạn cần tìm tệp cài đặt cho windows trên mạng. Tôi đã làm điều này cho bạn: slproweb.com/products/Win32OpenSSL.html
Cuộn xuống trang và tải xuống Trình cài đặt Win64 OpenSSL v1.1.1g EXE 63MB.
Cài đặt openssl-1.1.1g trên máy tính.
Việc cài đặt phải được thực hiện theo đường dẫn tiêu chuẩn, được chỉ định tự động trong thư mục C:Program Files. Chương trình sẽ được cài đặt trong thư mục OpenSSL-Win64.
Để thiết lập openSSL theo cách bạn cần, có tệp openssl.cfg. Tệp này nằm trong đường dẫn C:\Program Files\OpenSSL-Win64bin nếu bạn đã cài đặt openSSL như được mô tả trong đoạn trước. Đi tới thư mục lưu trữ openssl.cfg và mở tệp này bằng Notepad++ chẳng hạn.
Bạn có thể đoán rằng cơ quan cấp chứng chỉ sẽ được cấu hình bằng cách nào đó bằng cách thay đổi nội dung của tệp openssl.cfg và bạn hoàn toàn đúng. Điều này đòi hỏi phải tùy chỉnh lệnh [ ca ]. Trong tệp openssl.cfg, phần đầu của văn bản nơi chúng tôi sẽ thực hiện các thay đổi có thể được tìm thấy là: [ ca ].
Bây giờ tôi sẽ đưa ra một ví dụ về cài đặt cùng với mô tả của nó:
Bây giờ chúng ta cần tạo thư mục demoCA và các thư mục con như trong ví dụ trên. Và đặt nó vào thư mục này dọc theo đường dẫn được chỉ định trong thư mục (Tôi có/Users/username/bin/openSSLca/demoCA).
Điều rất quan trọng là phải đánh vần chính xác dir - đây là đường dẫn đến thư mục nơi đặt trung tâm chứng nhận của chúng tôi. Thư mục này phải được đặt trong /Users (nghĩa là trong tài khoản của một số người dùng). Ví dụ: nếu bạn đặt thư mục này trong C: Program Files, hệ thống sẽ không thấy tệp có cài đặt openssl.cfg (ít nhất là đối với tôi là như vậy).
$dir - đường dẫn được chỉ định trong dir được thay thế ở đây.
Một điểm quan trọng nữa là tạo một file index.txt trống, nếu không có file này thì các lệnh “openSSL ca…” sẽ không hoạt động.
Bạn cũng cần phải có tệp nối tiếp, khóa riêng gốc (ca.key), chứng chỉ gốc (ca.crt). Quá trình lấy các tập tin này sẽ được mô tả dưới đây.
Chúng tôi kết nối các thuật toán mã hóa do Rutoken cung cấp.
Kết nối này diễn ra trong tệp openssl.cfg.
Trước hết, bạn cần tải xuống các thuật toán Rutoken cần thiết. Đây là các tệp rtengine.dll, rtpkcs11ecp.dll.
Để thực hiện việc này, hãy tải xuống Rutoken SDK: www.rutoken.ru/developers/sdk.
SDK Rutoken là tất cả những gì dành cho các nhà phát triển muốn dùng thử Rutoken. Có cả hai ví dụ riêng biệt để làm việc với Rutoken bằng các ngôn ngữ lập trình khác nhau và một số thư viện được trình bày. Thư viện của chúng tôi rtengine.dll và rtpkcs11ecp.dll lần lượt được đặt trong sdk Rutoken tại vị trí:
Một điểm rất quan trọng. Thư viện rtengine.dll, rtpkcs11ecp.dll không hoạt động nếu không cài đặt trình điều khiển cho Rutoken. Ngoài ra Rutoken phải được kết nối với máy tính. (để cài đặt mọi thứ bạn cần cho Rutoken, hãy xem phần trước của bài viết habr.com/vi/post/506450)
Thư viện rtengine.dll và rtpkcs11ecp.dll có thể được lưu giữ ở bất kỳ đâu trong tài khoản người dùng.
Chúng tôi viết đường dẫn đến các thư viện này trong openssl.cfg. Để thực hiện việc này, hãy mở tệp openssl.cfg, đặt dòng ở đầu tệp này:
Dynamic_path - bạn phải chỉ định đường dẫn đến thư viện rtengine.dll.
MODULE_PATH - bạn cần đặt đường dẫn đến thư viện rtpkcs11ecp.dll.
Thêm các biến môi trường.
Đảm bảo thêm biến môi trường chỉ định đường dẫn đến tệp cấu hình openssl.cfg. Trong trường hợp của tôi, biến OPENSSL_CONF được tạo bằng đường dẫn C:Program FilesOpenSSL-Win64binopenssl.cfg.
Trong biến đường dẫn, bạn phải chỉ định đường dẫn đến thư mục chứa openssl.exe, trong trường hợp của tôi là: C:Program FilesOpenSSL-Win64bin.
Bây giờ bạn có thể quay lại bước 5 và tạo các tệp còn thiếu cho thư mục demoCA.
Tệp quan trọng đầu tiên nếu không có nó sẽ không hoạt động được là nối tiếp. Đây là một tệp không có phần mở rộng, giá trị của nó phải là 01. Bạn có thể tự tạo tệp này và viết 01 vào bên trong. Bạn cũng có thể tải xuống từ Rutoken SDK theo đường dẫn sdk/openssl/rtengine/samples/tool/demoCA /.
Thư mục demoCA chứa tệp nối tiếp, đây chính xác là những gì chúng ta cần.
Tạo một khóa riêng gốc.
Để thực hiện việc này, chúng ta sẽ sử dụng lệnh thư viện openSSL, lệnh này phải được chạy trực tiếp trên dòng lệnh: