Trong bài hướng dẫn Cài đặt openca kiến trúc SingleCA trên Centos 5.x tôi đã hướng dẫn các bạn cài đặt openCA với kiến trúc "All in one". Thực tế triển khai thì người ta sẽ không dùng đến kiến trúc này vì những lý do mà trong bài viết Chương 3. Kiến trúc PKI tôi đã nói đến. Hôm nay tôi sẽ cài đặt hệ thống thực theo kiến trúc phân cấp hay phân tầng.
Kiến trúc:
Nhắc lại chút xíu về kiến trúc 3 tầng tách biệt: "
... Trong một PKI X.509, nói chung có ba thành phần: một cơ quan cấp chứng nhận (CA), một cơ quan đăng ký (RA) và điểm cung cấp chứng nhận (CDP). Ba phần của một PKI được đặt tại một tòa nhà ("Trustcenter") được bảo vệ vật lý bằng cách sử dụng biometry, người bảo vệ, cammera giám sát, hệ thống báo động và các thiết bị khác..."
Chúng ta sẽ cài đặt 3 thành phần này như mô tả sau:
+ 1 server đóng vai trò "cơ quan cấp chứng nhận" cao nhất đặt tên là RootCA
+ 1 server đóng vai trò "cơ quan cấp chứng nhận địa phương" đặt tên là SubCA
+ 1 server đóng vai trò "cơ quan đăng ký" đặt tên là RA - Đồng thời có 1 giao diên trên RA gọi là CDP.
Lần lượt chúng ta cài đặt: RootCA, SubCA, RA
Chuẩn bị:
3 máy ảo chạy HĐH Centos 5.7 (Mẹo: bạn cài đặt 1 máy thôi, update này kia xong, rồi clone thêm 2 máy nữa)
I. Cài đặt RootCA
yum install -y gcc-c++
yum install -y openssl-devel db4 db4-devel mysql-server mysql-devel perl-XML-Parser httpd
Tạo database cho openca:
mysql -u root -p
mysql> show databases;
mysql>create database dbrootca;
mysql> grant all privileges on *.* to 'openca'@'localhost' identified by '123456';
mysql> exit;
Sửa file host /etc/hosts thêm vào cuối file như sau
diachiipcuamayban diachi.local diachi
Ví dụ : 192.168.1.2 tvuca.local tvuca
Download openca-tool:
wget http://ftp.openca.org/openca/openca-tools/releases/current/binaries/linux/CentOS5.5-i686/openca-tools-1.3.0-1.el5.i386.rpm
Hoặc
wget https://www.dropbox.com/s/b3xlka95tuxrx02/openca-tools-1.3.0-1.el5.i386.rpm
Cài đặt: rpm -Uvh openca-tools-1.3.0-1.el5.i386.rpm
Download openca-base:
# make
Hoàn tất cài đặt với lệnh make install. Ở đây triển khai trên single node cả RootCA nên sẽ là:
cd /opt/openca/etc/openca
Chúng ta sẽ sữa đổi các file:
Kiến trúc:
Nhắc lại chút xíu về kiến trúc 3 tầng tách biệt: "
... Trong một PKI X.509, nói chung có ba thành phần: một cơ quan cấp chứng nhận (CA), một cơ quan đăng ký (RA) và điểm cung cấp chứng nhận (CDP). Ba phần của một PKI được đặt tại một tòa nhà ("Trustcenter") được bảo vệ vật lý bằng cách sử dụng biometry, người bảo vệ, cammera giám sát, hệ thống báo động và các thiết bị khác..."
Chúng ta sẽ cài đặt 3 thành phần này như mô tả sau:
+ 1 server đóng vai trò "cơ quan cấp chứng nhận" cao nhất đặt tên là RootCA
+ 1 server đóng vai trò "cơ quan cấp chứng nhận địa phương" đặt tên là SubCA
+ 1 server đóng vai trò "cơ quan đăng ký" đặt tên là RA - Đồng thời có 1 giao diên trên RA gọi là CDP.
Lần lượt chúng ta cài đặt: RootCA, SubCA, RA
Chuẩn bị:
3 máy ảo chạy HĐH Centos 5.7 (Mẹo: bạn cài đặt 1 máy thôi, update này kia xong, rồi clone thêm 2 máy nữa)
I. Cài đặt RootCA
Cài đặt các thư viện cần thiết:
yum install -y gcc-c++
yum install -y openssl-devel db4 db4-devel mysql-server mysql-devel perl-XML-Parser httpd
Tạo người dùng mới phục vụ quá trình biên dịch và cấu hình openca
groupadd openca
useradd -g openca -u
1201 openca
Tạo database cho openca:
mysql -u root -p
mysql> show databases;
mysql>create database dbrootca;
mysql> grant all privileges on *.* to 'openca'@'localhost' identified by '123456';
mysql> FLUSH PRIVILEGES;
mysql> exit;
Sửa file host /etc/hosts thêm vào cuối file như sau
diachiipcuamayban diachi.local diachi
Ví dụ : 192.168.1.2 tvuca.local tvuca
Download openca-tool:
wget http://ftp.openca.org/openca/openca-tools/releases/current/binaries/linux/CentOS5.5-i686/openca-tools-1.3.0-1.el5.i386.rpm
Hoặc
wget https://www.dropbox.com/s/b3xlka95tuxrx02/openca-tools-1.3.0-1.el5.i386.rpm
Cài đặt: rpm -Uvh openca-tools-1.3.0-1.el5.i386.rpm
Download openca-base:
wget
http://ftp.openca.org/openca-base/releases/current/sources/openca-base-1.1.1.tar.gz
Hoặc: wget https://www.dropbox.com/s/8m00w36n5ou85k7/openca-base-1.1.1.tar.gz
Giải nén openca-base:
tar -xvf openca-base-1.1.1.tar.gz
cd openca-base-1.1.1
Tiến hành build:
# ./configure --prefix=/opt/openca \
--with-ca-oganization="TVU RootCA Labs" \
--with-httpd-fs-prefix=/var/www \
--with-httpd-main-dir=pki \
--with-db-name=dbrootca \
--with-db-host=localhost \
--with-db-user=openca \
--with-db-passwd=123456 \
--with--db-type=mysql \
--with--db-service-mail-account=rootca@gmail.com
OpenCA sẽ được cài đặt vào /opt/openca. Sử dụng cơ sở dữ liệu MySQL với
database openca, user là openca password 123456. Web quản trị được lưu
tại thư mục /var/www/pki
Tiếp theo là biên dịch
Hoặc: wget https://www.dropbox.com/s/8m00w36n5ou85k7/openca-base-1.1.1.tar.gz
Giải nén openca-base:
tar -xvf openca-base-1.1.1.tar.gz
cd openca-base-1.1.1
Tiến hành build:
# ./configure --prefix=/opt/openca \
--with-ca-oganization="TVU RootCA Labs" \
--with-httpd-fs-prefix=/var/www \
--with-httpd-main-dir=pki \
--with-db-name=dbrootca \
--with-db-host=localhost \
--with-db-user=openca \
--with-db-passwd=123456 \
--with--db-type=mysql \
--with--db-service-mail-account=rootca@gmail.com
OpenCA sẽ được cài đặt vào /opt/openca. Sử dụng cơ sở dữ liệu MySQL với
database openca, user là openca password 123456. Web quản trị được lưu
tại thư mục /var/www/pki
Tiếp theo là biên dịch
# make
Hoàn tất cài đặt với lệnh make install. Ở đây triển khai trên single node cả RootCA nên sẽ là:
# make install-online && make
install-ca
Khởi động lại web server:
# service httpd restart
Lưu ý là trong openca 1.1.1 sẽ có lỗi, vì vậy cần tiên hành fix lỗi này.
# service httpd restart
Lưu ý là trong openca 1.1.1 sẽ có lỗi, vì vậy cần tiên hành fix lỗi này.
Ghi
đè 2 file này:
# cp User.pm /opt/openca/lib/openca/perl_modules/perl5/OpenCA/
# cp initServer /opt/openca/lib/openca/functions/
Chọn yes để thay thế file cũ.
Khởi động lại web server:
# service httpd restart
Hoàn tất cài đặt. Tiếp theo là cấu hình cho OpenCA.
Di chuyển đến thư mục cấu hình CA
Ở đây sẽ cấu hình cho mọi máy có thể truy cập mà ko cần ssl
# cp User.pm /opt/openca/lib/openca/perl_modules/perl5/OpenCA/
# cp initServer /opt/openca/lib/openca/functions/
Chọn yes để thay thế file cũ.
Khởi động lại web server:
# service httpd restart
Hoàn tất cài đặt. Tiếp theo là cấu hình cho OpenCA.
Di chuyển đến thư mục cấu hình CA
Ở đây sẽ cấu hình cho mọi máy có thể truy cập mà ko cần ssl
cd /opt/openca/etc/openca
Chúng ta sẽ sữa đổi các file:
·
access_control/node.xml.template
·
access_control/ca.xml.template
·
access_control/ra.xml.template
·
config.xml
#vim access_control/node.xml.template
Trong thẻ:
<channel>
..
<protocol>ssl</protocol> ----> <protocol>.*</protocol>
..
<symmetric_keylength>128</symmetric_keylength> ----> <symmetric_keylength>0</symmetric_keylength>
..
</channel>
Lưu lại.
Tiếp theo sữa file: access_control/ra.xml.template
# vim access_control/ra.xml.template
<channel>
..
<protocol>ssl</protocol> ----> <protocol>.*</protocol>
..
<symmetric_keylength>128</symmetric_keylength> ----> <symmetric_keylength>0</symmetric_keylength>
..
</channel>
Lưu lại.
Tiếp theo sữa file /opt/openca/etc/openca/config.xml
vim config.xml
:$ để đến cuối file
<name>dataexchange_device_up</name>
<value>/dev/fd0</value> ---> <value>/tmp/openca</value>
<name>dataexchange_device_down</name>
<value>/dev/fd0</value> ---> <value>/tmp/openca</value>
Lưu lại.
Tiếp theo sửa file: openssl/openssl.cnf.template
# vim openssl/openssl.cnf.template
Trong [req] và [CA_defaut] tìm dòng:
default_md = sha256 ---> đổi thành default_md = sha1
Lưu lại.
Để các sửa đổi có hiệu lực:
# ./configure_etc.sh
Tạo symlink cho openca:
#cd /usr/sbin/
#ln -s /opt/openca/etc/init.d/openca openca
Khởi động openca:
#cd ~
#openca start
===> Nhập password admin:
Quá trình cài đặt RootCA đã xong, bạn kiểm tra kết quả bằng cách gõ vào trình duyệt: http://diachimaycairooca/pki
Accout là admin và pass lúc bạn start openca trên.
<channel>
..
<protocol>ssl</protocol> ----> <protocol>.*</protocol>
..
<symmetric_keylength>128</symmetric_keylength> ----> <symmetric_keylength>0</symmetric_keylength>
..
</channel>
Lưu lại.
Tiếp theo sữa file: access_control/ra.xml.template
# vim access_control/ra.xml.template
<channel>
..
<protocol>ssl</protocol> ----> <protocol>.*</protocol>
..
<symmetric_keylength>128</symmetric_keylength> ----> <symmetric_keylength>0</symmetric_keylength>
..
</channel>
Lưu lại.
Tiếp theo sữa file /opt/openca/etc/openca/config.xml
vim config.xml
:$ để đến cuối file
<name>dataexchange_device_up</name>
<value>/dev/fd0</value> ---> <value>/tmp/openca</value>
<name>dataexchange_device_down</name>
<value>/dev/fd0</value> ---> <value>/tmp/openca</value>
Lưu lại.
Tiếp theo sửa file: openssl/openssl.cnf.template
# vim openssl/openssl.cnf.template
Trong [req] và [CA_defaut] tìm dòng:
default_md = sha256 ---> đổi thành default_md = sha1
Lưu lại.
Để các sửa đổi có hiệu lực:
# ./configure_etc.sh
Tạo symlink cho openca:
#cd /usr/sbin/
#ln -s /opt/openca/etc/init.d/openca openca
Khởi động openca:
#cd ~
#openca start
===> Nhập password admin:
Quá trình cài đặt RootCA đã xong, bạn kiểm tra kết quả bằng cách gõ vào trình duyệt: http://diachimaycairooca/pki
Accout là admin và pass lúc bạn start openca trên.
Mệt quá! Các bạn vui lòng đợi mình khỏe lại sẽ đăng phần tiếp theo nhe.
Mình dùng CentOS 5.4.
ReplyDeleteMình đã làm theo bạn hướng dẫn nhưng vẫn cứ bị lỗi "OpenCA Error: Server is not online or does not accept requests (/opt/openca/var/openca/tmp/openca_socket - /opt/openca/var/openca/tmp/openca_socket). 0".
Bạn có thể cho mình biết cách khắc phục được không. Mong nhận được hồi âm sớm từ bạn.
This comment has been removed by the author.
Deletemình cũng vậy ... khóa luận chỉ còn demo mà bị mắc lỗi này.... ai khắc phục giúp mình với
Deletehelp me
DeleteAnh tran cong ơi, em cũng đang làm khóa luận về OpenCA, a có thể cho e mail em hỏi một số vấn đề trong quá trình cài đặt được ko ạ, cảm ơn anh
DeleteChào Huynh!
ReplyDeleteThật sự thì lúc mới bắt đầu tôi cũng nhiều lần bị lổi này, ngồi sửa đi sửa lại cũng ko tìm ra lý do. Cuối cùng là thế này:
- Tôi sửa dụng CentOS 5.9
- Đọc thật kỹ bài hướng dẫn và làm tuần tự từng bước 1 để tránh sai xót.
- Phía dưới tôi đính kèm file hướng dẫn + Video cài đặt cho bạn (Video này sưu tầm nhe)
Chúc bạn thành công.
Link video: http://www.youtube.com/watch?v=DyPhdbqlxbw
Link file hướng dẫn: http://www.mediafire.com/download/i9g1bjy7nuuvobk/cai_dat_RA.doc
Chào Toan!
ReplyDeleteBạn cho mình hỏi 2 vấn đề này :
1. Khi mình dùng SubCA cấp phát certificate cho một user( dùng để gửi mail có mã hóa) thì nó bị lỗi : "New certificate would exceed CA-certificate lifetime "
2. Dưới đây là link hướng dẫn của Kendy Hikaru : http://kendyhikaru.blogspot.com/2011/05/openca-tutorial.html
Bạn xem Video "Using to sign and encrypt email" . Tại sao Kendy đã tạo ra SubCA rồi mà vẫn dùng RootCA để cấp phát certificate cho user (cũng để gửi mail có mã hóa)?
Kendy Hikaru đã dùng chứng chỉ của RootCA cấp để sign mail, đều này hoàn toàn bình thường. Việc sử dụng cert để sign mail theo tôi đã làm thì như thế này:
ReplyDeleteGọi:
CA.crt là chứng chỉ của cơ quan chứng nhận (CQCN). Có thể là RootCA, SubCA
people.crt là chứng chỉ được cấp bở CQCN cho người dùng People
1. import CA.crt vào ứng dụng như Outlook, hay những trình duyệt mail khác.
2. import people.crt vào ứng dụng đó luôn.
3. Bắt đầu sử dụng
* Lưu ý: Phía người nhận mail cũng phải thực hiện bước 1.
Chào Toan!
DeleteCám ơn bạn đã trả lời.
Mình đang cố xây dựng một mô hình phân cấp. RootCA -> SubCA ...
Rồi lấy SubCA cấp phát chứng chỉ cho User nhưng mình cứ bị lỗi New certificate would exceed CA-certificate lifetime. Error Code 6741 . Mong bạn có thể giúp mình. ( Chỗ SubCA mình make install-online && make install-ca )
Huy kiểm tra lúc root ca cấp chứng chỉ cho sub ca, chứng chỉ của subca có giá trị là bao lâu (lifetime), 1 năm, 2 năm... vì theo tôi thấy, lỗi này phát sinh khi chứng chỉ của sub ca có lifetime < lifetime của chứng chỉ định cấp. Thân.
ReplyDeleteThis comment has been removed by the author.
ReplyDeleteChào anh, hai file user.pm và initServer link down đều hỏng rồi ạ,
ReplyDeleteanh có thể up lại hai link ấy được không ạ
thanks!
This comment has been removed by the author.
DeleteThis comment has been removed by the author.
ReplyDeleteEm làm theo hướng dẫn cùng bị dính lỗi OpenCA Error: Server is not online or does not accept requests (/opt/openca/var/openca/tmp/openca_socket - /opt/openca/var/openca/tmp/openca_socket). 0
ReplyDeleteCó cao nhân nào fix được chỉ em với ạ
Mình cũng gặp lỗi này mà bó tay, search trên web toàn thấy nói đến lỗi này. Không biết có a em nào đã fix được chưa gỡ giúp mình
ReplyDeleteThanks
Chào mọi người!
ReplyDeleteLỗi
Error: Server is not online or does not accept requests
Mấy bạn thử cách này xem.Download 2 file user.pm và initServer theo link
https://www.mediafire.com/folder/y4x15rrg1yc2v/FIX_openca_1.1.1
(http://sourceforge.net/p/openca/mailman/openca-users/?viewmonth=201011)
Rùi thay thế 2 file vừa down vào opencabase 1.1.1.Sau đó hãy biên dịch và cài đạt.
Chú ý ngồi coi kỹ quá trình biên dich và cài !!! Có lỗi thì coi fix
Cái gì cũng phải từ từ.....Hết sức bình tĩnh.hihihi.
Cài xong nhớ gõ lệnh openca restart nha!!!
Chào mọi người, nhờ 2 file của Quang mình đã build được và ko bị lỗi Server is not online or does not accept requests. mà mọi người nhớ clear history của trình duyệt khi vào http://diachimaycairooca/pki/ca nhé.
ReplyDeleteThis comment has been removed by the author.
ReplyDeleteThe configuration file /opt/openca/etc/openca/servers/ca.conf exists but can not be read!
ReplyDeleteYou probably misconfigured OpenCA during installation. Make sure that you used the correct user and group for your webserver.
HINT:
Under UNIX-like operating systems you can determine the user and group of your webserver by issuing the following command
# ps -eo "%U %G %a"
and look for the process name of your webserver (in most cases httpd)
Use this information when customizing your configure script at the following configuration options:
--with-httpd-user=user id of webserver
--with-httpd-group=apache=group id of webserver
Mọi người cho em hỏi làm sao hết lỗi này được ạ
Error: Server is not online or does not accept requests : Em dùng 2 cái file kia rồi mà vẫn lỗi, thật khó hiểu, có ai giúp em được không ạ
ReplyDelete
ReplyDeleteXin chào;
xin vui lòng, Có chút, bạn đã gửi hướng dẫn này về cài đặt một PKI qua OpenCA. Cảm ơn đã hướng dẫn thực sự. Tôi áp dụng cho các bức thư, cũng giống như tôi Fedora 19 nhưng tại buổi ra mắt của PKI tại naviguator tôi nhận được lỗi sau:
"OpenCA Lỗi: Máy chủ không trực tuyến hoặc không chấp nhận yêu cầu (/ opt / OpenCA / var / OpenCA / tmp / openca_socket - / opt / OpenCA / var / OpenCA / tmp / openca_socket). 0".
Xin vui lòng, tôi muốn biết làm thế nào để khắc phục lỗi này. email của tôi là feutseujoel@gmail.com Cảm ơn