Jan 19, 2013

Cài đặt openca kiến trúc SingleCA trên Centos 5.x

Để giúp các bạn tiếp cận Openca một cách dễ dàng, tôi mạo muội viết bài viết này, bài viết có tham khảo một số nguồn trên internet và có sàn lọc lại. Có chổ nào sai xót hay thắc mắc các bạn có thể comment bên dưới.
Tôi sẽ cài đặt OpenCA với kiến trúc SingleCA (All in one) nghĩa là tất cả RootCA, SubCA và RA trên 1 máy.
Riêng kiến trúc phân tầng riêng rẻ nghĩa là RootCA 1 máy, SubCA 1 máy, RA 1 máy sẽ sớm có để phục vụ các bạn.

Các kiến thức cơ bản: RootCA, SubCA, RA .... các bạn  chưa hiểu có thể đọc các bài viết của tôi trong chuyên mục OpenCA.



Chúng ta bắt đầu nhe!


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 openca;

mysql> grant all privileges on *.* to 'openca'@'localhost' identified by '1063467';
mysql> FLUSH PRIVILEGES;
mysql> exit;

Edit /etc/hosts

Thêm dòng: 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

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 CA Labs" \
--with-httpd-fs-prefix=/var/www \
--with-httpd-main-dir=pki \
--with-db-name=openca \
--with-db-host=localhost \
--with-db-user=openca \
--with-db-passwd=1063467 \
--with--db-type=mysql \
--with--db-service-mail-account=nttoan@tvu.edu.vn

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 1063467. 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ả CA & RA nên sẽ là:

#make install-offline install-online

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. Download 2 file fix User.pm và initServer và tại:

http://ftp.openca.org/openca/openca-base/fixes/v1.1.1/err_user_unknown/

wget http://ftp.openca.org/openca/openca-base/fixes/v1.1.1/err_user_unknown/initServer

wget http://ftp.openca.org/openca/openca-base/fixes/v1.1.1/err_user_unknown/User.pm

Copy 2 file này tới nơi cần thiết:

# 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.
1. Access control
Ở đây sẽ cấu hình cho mọi máy có thể truy cập mà ko cần ssl

Di chuyển đến thư mục cấu hình CA

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
Trong thẻ:
vim access_control/node.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: 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 đã xong, bạn kiểm tra kết quả bằng cách gõ vào trình duyệt: http://diachimaycaiopenca/pki
 Accout là admin và pass lúc bạn start openca trên.

Chúc các bạn thành công.

(ST)

10 comments:

  1. phan dau cai dat thu vien t k ro lam c co the chi cho t dc k? hoac k c co the co hinh anh huong dan dc k? thank c nhieu!

    ReplyDelete
  2. Bạn mở terminal lên, copy mấy dòng lệnh dán vào và enter thôi. Có vấn đề gì sao?

    ReplyDelete
    Replies
    1. chào anh!
      sao phần đầu em cũng copy rồi dán vào terminal trong linux nhưng mà hiển thị lỗi gcc-c++ not avaiable là sao vây?

      Delete
  3. This comment has been removed by the author.

    ReplyDelete
  4. cho e hỏi xíu là openCA là cài dặt trên ubuntu desktop hay là ubuntu server.tại mới tìm hiểu nên ko rõ cho lắm nà

    ReplyDelete
  5. This comment has been removed by the author.

    ReplyDelete
  6. bạn có thể hướng dẫn mình cách triển khai xây dựng hạ tầng khóa công khai dựa trên OpenCa được ko ạ. cảm ơn bạn nhiều

    ReplyDelete
  7. This comment has been removed by the author.

    ReplyDelete
  8. Bạn có thế up lại 2 file initServer và User.pm được không mình giờ kiếm không còn 2 file đó, cảm ơn bạn

    ReplyDelete