1. BÁO CÁO TUẦN ĐỒ ÁN
TRIỂN KHAI HỆ THỐNG PKI
Sinh viên thực hiện: Lưu Việt Tùng.
Lớp CN.CNTT1 – K55
MSSV :20109873
Mục lục :
1, Đề tài và công nghệ liên quan.
2.Càiđặt
- RootCa
- SubCA
3. Lỗi mắc phải
2. 1, Đề tài và công nghệ liên quan.
Sử dụng phần mềm mã nguồn mở openCA triển khai.
Môi trường thử nghiệm : Centos ( 5.4 , 5.7, 5.10 , 5.9)
2, Càiđặt.
Cài đặt OpenCA theo kiến trúc phân tầng:
Kiến trúc phân tầng : kiến trúc 3 tầng tách biệt .
Trong một PKI X.509, 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).
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.
Em triển khai cài đặt 1 máy , update đầy đủ rồi clone thêm 2 máy nữa.
2.1:Cài đặt RootCa.
- Cài đặt trình biên dịch gcc:
yum install -y gcc-c++
- Cài đặt các thư viện cần thiết cho quá trình cài đặt và thành phần hỗ trợ ( Web
server apache, database server mysql ).
yum install -y openssl-develdb4 db4-devel mysql-server mysql-develperl-XML-
Parser httpd
- Kết thúc bước trên đã cài đặt xong : Web server apache, database server mysql .
Cấu hình cho 2 dịch vụ này : hoạt động và tự động bật lúc khởi động.
Chkconfig --level 35 httpd on
Chkconfig --level 35 mysqld on
Service httpd start
Service mysqld start
groupadd openca
useradd -g openca -u 1201 openca
- Cấu hình mysql cho tài khoản root ( cho lần khởi động đầu tiên ).
Mysqladmin –u root password123456
- Tạo một CSDL cho openCA. openCa sử dụng Mysql để lưu CSDL:
3. Đang nhập vào mysql
Mysql –u root –p
123456
- Tạo một database cho openCa
mysql> showdatabases;
mysql>create database dbrootca;
- Tạo một user mysqllà openca cho phép user này truy cập cơ sở dữ liệu.
mysql> grant all privilegeson*.* to 'openca'@'localhost'identifiedby ‘123456’;
mysql> FLUSH PRIVILEGES;
mysql> exit;
- Sửa file host /etc/hosts thêm vào cuốifile như sau
192.168.1.2 lvtca.local lvtca
- Tiến hành build openCa từ source
Download openCa tool: ( em sử dụng tool 1.3.0 binaries )
Wgethttp://sourceforge.net/projects/openca/files/openca-
tools/releases/v1.3.0/binaries/linux/CentOS5.5-i686/openca-tools-1.3.0-
1.el5.i386.rpm/download
Cài đặt: rpm –Uvh openca-tools-1.3.0-1.el5.i386.rpm
Download openCa base:
Wgethttp://sourceforge.net/projects/openca/files/openca-
base/releases/v1.1.1/sources/openca-base-1.1.1.tar.gz/download
Giải nén:
tar -xvf openca-base-1.1.1.tar.gz
cd openca-base-1.1.1
4. Tiến hành build:
./configure --prefix=/opt/openca
--with-ca-oganization="LVT RootCALabs"
--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=tunglv@lvt.local
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ến hành biên dịch:
make
make install-online && make install-ca
Khởi động lại web server:
service httpd restart
Ghi đè 2 file này:
cp User.pm /opt/openca/lib/openca/perl_modules/perl5/OpenCA/
cp initServer /opt/openca/lib/openca/functions/
Yes ( Để thay thế file cũ )
- Khởi động lại webserver:
5. 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
Lựa chọn .* để đồng ý với mọi giao thức đến.
Trong thẻ:
<channel>
..
<protocol>ssl</protocol>----> <protocol>.*</protocol>
..
<symmetric_keylength>128</symmetric_keylength> ---->
<symmetric_keylength>0</symmetric_keylength>
..
</channel>
Lưu lại. :wq
6. 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
# vimopenssl/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
7. Khởi động openca:
Cd ~
Openca start
123456
Truy cập trên trình duyệt: diachimay/pki/ra
8. 2.1 Cài đặt SUBCA
Em cài đặt gần tương tự cài đặt RootCa
3.Lỗi mắc phải:
Em đã cài lại nhiều lần, trên nhiều phiên bản, tìm nhiều cáchfix lỗi mà vẫn mắc
lỗi sau: ( Em thấy trên mạng rất nhiều người mắc phải lỗi này, nhưng các topic
đều không thấy nêu ra được cáchgiải quyết )
OpenCA Error: Server is not online or does not accept requests
(/opt/openca/openca/var/openca/tmp/openca_socket -
/opt/openca/var/openca/tmp/openca_socket). 0
Em kiểm tra lỗi trong log:
2014/03/26-22:29:18 OpenCA::Server (type Net::Server::Fork) starting! pid(25528)
Binding to UNIX socket file /opt/openca/var/openca/tmp/openca_socketusing
SOCK_STREAM
Setting gid to "48 48"
Setting uid to "48"
9. Em nghĩ có lỗi :
1.Do MysQL chưa bật hoặc là user và password trong file config.xml config sai dẫn
tới OpenCA không tạo được kết nối tới cơ sở dữ liệu của OpenCA.
Nhưng em kiểm tra, không thấy có vấn đề.
2. Chưa gán quyền full cho apache chạy ( apache chặn cấm truy nhập )
- em đã cấu hình lại apache
ScriptAlias /cgi-bin/ "/var/www/cgi-bin/" #
# "/var/www/cgi-bin" should be changed to whatever your ScriptAliased
# CGI directory exists, if you have that configured.
# <Directory "/var/www/cgi-bin">
#AllowOverride None
#Options ExecCGI
#Order allow,deny Allow from all
</Directory>
<Directory "/var/www/html>
#AllowOverride None
#Options None
#Order allow,deny Allow from all
</Directory>
3. Do xung đột các gói phần mềm
4. Lỗi Socket thông báo ngoài trình duyệt ( Cái này em ko hiểu lắm )