Download as docx, pdf, or txt
Download as docx, pdf, or txt
You are on page 1of 33

BAN CƠ YẾU CHÍNH PHỦ

HỌC VIỆN KĨ THUẬT MẬT MÃ

CHỨNG THƯ ĐIỆN TỬ

ĐỀ TÀI
Phần mềm :EJBCA
Sử dụng chứng thư số SSL đã tạo ra, cài đặt và cấu
hình chứng thư số cho webserver Apache

Giảng viên hướng dẫn : GV. Lê Quang Huy


Lớp : L04
Sinh viên thực hiện : Nguyễn Hải Đức
Phạm Trung Sơn
Phan Cao Cường

Hà Nội, 07-2024
Mục Lục

Chương I : Tổng quan về hạ tầng mật mã khóa công khai.................................4


1.1 Tổng quan về hạ tầng mật mã khóa công khai...........................................4
1.1.1 Các thành phần của PKI...........................................................................4
1.1.2 Chức năng cơ bản của PKI.......................................................................6
Chương 2. Công nghệ xây dựng hạ tầng PKI và ứng dụng..............................10
2.1-Công nghệ CA ( EJBCA )...........................................................................10
2.1.1 PKI – EJBCA.........................................................................................10
2.1.2 Đặc điểm kỹ thuật..................................................................................10
2.1.3 Kiến trúc EJBCA....................................................................................11
2.1.4 Chức năng..............................................................................................11
2.1.5 Đánh giá.................................................................................................12
2.2- Công nghệ ứng dụng ( Apache WebServer )...........................................13
2.2.1 Khái niệm...............................................................................................13
2.2.2 Cách thức hoạt động............................................................................13
2.2.3 Ưu điểm..................................................................................................13
2.2.4 Nhược điểm............................................................................................13
Chương 3 : Vận hành hệ thống............................................................................15
3.1. Hạ tầng PKI................................................................................................15
3.1.1. Cài đặt EJBCA......................................................................................15
3.1.2. Tạo RootCA..........................................................................................17
3.1.3. Tạo SubCA............................................................................................18
3.1.4. Cấu hình SSL Server Profiles................................................................20
3.1.5. Phát hành chứng thư cho Server...........................................................21
3.1.6. Cấu hình Client Profiles........................................................................24
3.1.7. Phát hành chứng thư số cho Client........................................................25
3.2. Ứng dụng.....................................................................................................27
3.2.1. Cài đặt Apache Web Server và cấu hình SSL 1 chiều...........................27
3.2.2. Cấu hình SSL 2 chiều............................................................................29
TÀI LIỆU THAM KHẢO.......................................................................................32
Chương I : Tổng quan về hạ tầng mật mã khóa công khai
1.1 Tổng quan về hạ tầng mật mã khóa công khai
Public Key Infrastructure (PKI) là một cơ chế để cho một bên thứ ba (thường
là nhà cung cấp chứng thực số) cung cấp và xác thực định danh các bên tham
gia vào quá trình trao đổi thông tin. Cơ chế này cũng cho phép gán cho mỗi
người sử dụng trong hệ thống một cặp public/private. Các quá trình này thường
được thực hiện bởi một phần mềm đặt tại trung tâm và các phần mềm khác tại
các địa điểm của người dùng. Khoá công khai thường được phân phối trong
chứng thực khóa công khai – hay Public Key Infrastructure. Khái niệm hạ tầng
khoá công khai (PKI) thường được dùng chỉ toàn bộ hệ thống bao gồm cả nhà
cung cấp chứng thực số (CA) cùng các cơ chế liên quan đồng thời với toàn bộ
việc sử dụng các thuật toán mã hoá công khai trong trao đổi thông tin.
1.1.1 Các thành phần của PKI
Một hệ thống PKI gồm các thành phần sau:
 Tổ chức chứng nhận (Certificate Authority – CA)

 Trung tâm đăng ký (Registration Authority – RA)

 Thực thể cuối (End Entity – EE)

 Kho lưu trữ chứng nhận (Certificate Repository – CR)

Hình 1 : Các thành phần của PKI


a. Tổ chức chứng nhận (Certificate Authority – CA)
Tổ chức chứng thực - CA cũng được gọi là bên thứ ba được tin tưởng vì
người sử dụng cuối tin tưởng vào chữ ký số của CA trên chứng chỉ trong khi
thực hiện những hoạt động mã hoá khoá công khai cần thiết. Tổ chức cung cấp
dịch vụ chứng thực – Certification Service Provider (CSP) là một thuật ngữ
khác nhắc đến CA được sử dụng trong bài báo cáo.
Thông thường, CA thực hiện chức năng xác thực bằng cách cấp chứng chỉ
cho các CA khác và cho thực thể cuối (người giữ chứng chỉ) trong hệ thống.
Nếu CA nằm ở đỉnh của mô hình phân cấp PKI và chỉ cấp chứng chỉ cho những
CA ở mức thấp hơn thì chứng chỉ này được gọi là chứng chỉ gốc “root
certificate”.
b. Trung tâm đăng ký (Registration Authority – RA)
Mặc dù CA có thể thực hiện những chức năng đăng ký cần thiết, nhưng đôi
khi cần có thực thể độc lập thực hiện chức năng này. Thực thể này được gọi là
“registration authority” - trung tâm đăng ký. Ví dụ khi số lượng thực thể cuối
trong miền PKI tăng lên và số thực thể cuối này được phân tán khắp nơi về mặt
địa lý thì việc đăng ký tại một CA trung tâm trở thành vấn đề khó giải quyết. Để
giải quyết vấn đề này cần thiết phải có một hoặc nhiều RAs (trung tâm đăng ký
địa phương).
Mục đích chính của RA là để giảm tải công việc của CA. Chức năng thực
hiện của một RA cụ thể sẽ khác nhau tuỳ theo nhu cầu triển khai PKI nhưng chủ
yếu bao gồm những chức năng sau:
 Xác thực cá nhân chủ thể đăng ký chứng chỉ.

 Kiểm tra tính hợp lệ của thông tin do chủ thể cung cấp.

 Xác nhận quyền của chủ thể đối với những thuộc tính chứng chỉ được
yêu cầu.
 Kiểm tra xem chủ thể có thực sự sở hữu khoá riêng đang được đăng
ký hay không - điều này thường được đề cập đến như sự chứng minh
sở hữu (proof of possession - POP).
 Tạo cặp khoá bí mật /công khai.

 Phân phối bí mật được chia sẻ đến thực thể cuối (ví dụ: khoá công của
CA).
 Thay mặt chủ thể thực thể cuối khởi tạo quá trình đăng ký với CA. -
Lưu trữ khoá riêng.
 Khởi sinh qúa trình khôi phục khoá.

 Phân phối thẻ bài vật lý (ví dụ như thẻ thông minh) chứa khoá riêng.

Nhìn chung, RA xử lý việc trao đổi (thường liên quan đến tương tác người
dùng) giữa chủ thể thực thể cuối và quá trình đăng ký, phân phối chứng chỉ và
quản lý vòng đời chứng chỉ/khoá. Tuy nhiên, trong bất kỳ trường hợp nào thì
RA cũng chỉ đưa ra những khai báo tin cậy ban đầu về chủ thể. Chỉ CA mới có
thể cấp chứng chỉ hay đưa ra thông tin trạng thái thu hồi chứng chỉ như CRL.
c. Thực thể cuối (End Entity – EE)
Thực thể cuối trong PKI có thể là con người, thiết bị, và thậm chí là một
chương trình phần mềm nhưng thường là người sử dụng hệ thống. Thực thể
cuối sẽ thực hiện những chức năng mật mã (mã hoá, giải mã và ký số).
d. Kho lưu trữ chứng nhận (Certificate Repository – CR)
Chứng chỉ (khoá công) và thông tin thu hồi chứng chỉ phải được phân phối
sao cho những người cần đến chứng chỉ đều có thể truy cập và lấy được. Có 2
phương pháp phân phối chứng chỉ:
 Phân phối cá nhân

Phân phối cá nhân là cách phân phối cơ bản nhất. Trong phương pháp này
thì mỗi cá nhân sẽ trực tiếp đưa chứng chỉ của họ cho người dùng khác. Việc
này có thể thực hiện theo một số cơ chế khác nhau. Chuyển giao bằng tay chứng
chỉ được lưu trong đĩa mềm hay trong một số các môi trường lưu trữ khác.
Cũng có thể phân phối bằng cách gắn chứng chỉ trong e-mail để gửi cho người
khác.
Cách này thực hiện tốt trong một nhóm ít người dùng nhưng khi số lượng
người dùng tăng lên thì có thể xảy ra vấn đề về quản lý.
 Phân phối công khai

Một phương pháp khác phổ biến hơn để phân phối chứng chỉ (và thông tin
thu hồi chứng chỉ) là công bố các chứng chỉ rộng rãi, các chứng chỉ này có thể
sử dụng một cách công khai và được đặt ở vị trí có thể truy cập dễ dàng. Những
vị trí này được gọi là cơ sở dữ liệu. Dưới đây là ví dụ về một số hệ thống lưu
trữ:
 X.500 Directory System Agents (DSAs)

 Lightweight Directory Access Protocol (LDAP) Server

 Online Certificate Status Protocol (OCSP) Responders

 Domain name System (DNS) và Web servers

 File Transfer Protocol (FTP) Servers và Corporate Databases


1.1.2 Chức năng cơ bản của PKI
Những hệ thống cho phép PKI có những chức năng khác nhau. Nhưng nhìn
chung có hai chức năng chính là: chứng thực và thẩm tra.
a. Chứng thực (certification)
Chứng thực là chức năng quan trọng nhất của hệ thống PKI. Đây là quá trình
ràng buộc khoá công khai với định danh của thực thể. CA là thực thể PKI thực
hiện chức năng chứng thực. Có hai phương pháp chứng thực:
 Tổ chức chứng thực (CA) tạo ra cặp khoá công khai / khoá bí mật và
tạo ra chứng chỉ cho phần khoá công của cặp khoá.
 Người sử dụng tự tạo cặp khoá và đưa khoá công cho CA để CA tạo
chứng chỉ cho khoá công đó. Chứng chỉ đảm bảo tính toàn vẹn của
khoá công khai và các thông tin gắn cùng.
b. Thẩm tra (validation)
Quá trình xác định liệu chứng chỉ đã đưa ra có thể được sử dụng đúng mục
đích thích hợp hay không được xem như là quá trình kiểm tra tính hiệu lực của
chứng chỉ. Quá trình này bao gồm một số bước sau:
 Kiểm tra xem liệu có đúng là CA được tin tưởng đã ký số lên chứng
chỉ hay không (xử lý theo đường dẫn chứng chỉ).
 Kiểm tra chữ ký số của CA trên chứng chỉ để kiểm tra tính toàn vẹn.

 Xác định xem chứng chỉ còn ở trong thời gian có hiệu lực hay không.

 Xác định xem chứng chỉ đã bị thu hồi hay chưa.

 Xác định xem chứng chỉ đang được sử dụng có đúng mục đích, chính
sách, giới hạn hay không (bằng cách kiểm tra những trường mở rộng
cụ thể như mở rộng chính sách chứng chỉ hay mở rộng việc sử dụng
khoá).
c. Một số chức năng khác
Hệ thống PKI thực hiện chức năng chứng thực, thẩm tra cùng với một số
chức năng phụ trợ khác. Dưới đây là một số chức năng và dịch vụ được hầu hết
các hệ thống PKI cung cấp. Một số những chức năng khác có thể được định
nghĩa tuỳ theo yêu cầu cụ thể của các hệ thống PKI.
 Đăng ký

Đăng ký là quá trình đến hoặc liên lạc với các tổ chức, trung tâm tin cậy để
đăng ký các thông tin và xin cấp chứng chỉ. RA và CA là những thực thể trong
quá trình đăng ký. Quá trình đăng ký phụ thuộc vào chính sách của tổ chức. Nếu
chứng chỉ được cung cấp với mục đích dùng cho những hoạt động bí mật thì sử
dụng phương pháp gặp mặt trực tiếp. Nếu chứng chỉ chỉ được sử dụng cho
những mục đích, hoạt động thường thì có thể đăng ký qua những ứng dụng viết
sẵn hoặc ứng dụng điện tử.
 Khởi tạo ban đầu

Khi hệ thống trạm của chủ thể nhận được các thông tin cần thiết để liên lạc
với CA thì quá trình khởi tạo bắt đầu. Những thông tin này có thể là khoá công
của CA, chứng chỉ của CA, cặp khóa công /bí mật của chủ thể.
Một số hệ thống khác sử dụng cơ chế dựa trên password trong giai đoạn khởi
tạo. Người dùng cuối liên lạc với CA khi nhận được password và sau đó thiết
lập một kênh bảo mật để truyền những thông tin cần thiết. Giai đoạn khởi tạo
thường tiếp tục với quá trình chứng thực.
 Khôi phục cặp khoá

Hầu hết hệ thống PKI tạo ra hai cặp khoá cho người sử dụng cuối, một để ký
số và một để mã hoá. Lý do để tạo hai cặp khoá khác nhau xuất phát từ yêu cầu
khôi phục và sao lưu dự phòng khoá.
Tuỳ theo chính sách của tổ chức, bộ khoá mã (mã và giải mã) và những
thông tin liên quan đến khoá của người sử dụng phải được sao lưu để có thể lấy
lại được dữ liệu khi người sử dụng mất khoá riêng hay rời khỏi đơn vị.
Còn khoá để ký số được sử dụng tuỳ theo mục đích cá nhân nên không được
sao lưu. Riêng khoá bí mật của CA thì được lưu giữ dự phòng trong một thời
gian dài để giải quyết những vấn đề nhầm lẫn có thể xảy ra trong tương lai. Hệ
thống PKI có những công cụ để thực hiện chức năng sao lưu và khôi phục
khoá.
 Tạo khoá

Cặp khoá công khai/bí mật có thể được tạo ở nhiều nơi. Chúng có thể được
tạo ra bằng phần mềm phía client và được gửi đến CA để chứng thực.
CA cũng có thể tạo ra cặp khoá trước khi chứng thực. Trong trường hợp này,
CA tự tạo cặp khoá và gửi khoá bí mật này cho người sử dụng theo một cách an
toàn. Nếu khoá do bên thứ ba tạo ra thì những khoá này phải được CA tin cậy
trong miền xác nhận trước khi sử dụng.
 Hạn sử dụng và cập nhật khoá

Một trong những thuộc tính của chứng chỉ là thời gian hiệu lực. Thời gian
hiệu lực của mỗi cặp khoá được xác định theo chính sách sử dụng. Các cặp khoá
của người sử dụng nên được cập nhật khi có thông báo về ngày hết hạn. Hệ
thống sẽ thông báo về tình huống này trong một thời gian nhất định. Chứng chỉ
mới sẽ được người cấp công bố tự động sau thời gian hết hạn.
 Xâm hại khoá

Đây là trường hợp không bình thường nhưng nếu xảy ra thì khoá mới sẽ
được công bố và tất cả người sử dụng trong hệ thống sẽ nhận thấy điều này.
Xâm hại đến khoá của CA là một trường hợp đặc biệt. Và trong trường hợp này
thì CA sẽ công bố lại tất cả các chứng chỉ với CA-certificate mới của mình
 Thu hồi

Chứng chỉ được công bố sẽ được sử dụng trong khoảng thời gian có hiệu
lực. Nhưng trong trường hợp khoá bị xâm hại hay có sự thay đổi trong thông tin
của chứng chỉ thì chứng chỉ mới sẽ được công bố, chứng chỉ cũ sẽ bị thu hồi.
 Công bố và gửi thông báo thu hồi chứng chỉ
Một chứng chỉ được cấp cho người sử dụng cuối sẽ được gửi đến cho người
nắm giữ và hệ thống lưu trữ để có thể truy cập công khai. Khi một chứng chỉ bị
thu hồi vì một lý do nào đó, tất cả người sử dụng trong hệ thống sẽ được thông
báo về việc này. Phương thức để công bố và gửi những thông báo thu hồi đã
được đề cập chi tiết trong nội dung về chứng chỉ số ở phần trên.
 Xác thực chéo

Xác thực chéo là một trong những đặc tính quan trọng nhất của hệ thống
PKI. Chức năng này được sử dụng để nối hai miền PKI khác nhau. Xác thực
chéo là cách để thiết lập môi trường tin cậy giữa hai CA dưới những điều kiện
nhất định. Những điều kiện này được xác định theo yêu cầu của người sử dụng.
Những người sử dụng ở các miền khác nhau chỉ có thể giao tiếp an toàn với
người khác sau khi việc xác thực chéo giữa các CA thành công.
Xác thực chéo được thiết lập bằng cách tạo chứng chỉ CA xác thực lẫn nhau.
Nếu CA-1 và CA-2 muốn thiết lập xác thực chéo thì cần thực hiện một số bước
sau:
 CA-1 công bố CA – certificate cho CA-2.

 CA-2 công bố CA – certificate cho CA-1.

 CA-1 và CA-2 sẽ sử dụng những trường mở rộng xác định trong


chứng chỉ để đặt những giới hạn cần thiết trong CA-certificate.
Việc xác thực chéo đòi hỏi phải có sự kiểm tra cẩn thận các chính sách PKI.
Nếu cả hai đều có cùng hoặc tương tự chính sách của nhau thì việc xác thực
chéo sẽ có ý nghĩa. Ngược lại, sẽ có những tình huống không mong muốn xuất
hiện trong trường hợp chính sách PKI của một miền trở thành một phần của
miền khác.
Trường mở rộng “Policy mapping”, “name constraints” và “policy
constraints” của chứng chỉ X.509 chuẩn được sử dụng trong xác thực chéo để
đưa ra một số giới hạn trong môi trường tin cậy.
Hình 1.2 dưới đây minh hoạ đường dẫn cấp chứng chỉ được xây dựng giữa 2
CA (2 CA này đã thiết lập mối quan hệ tin cậy sử dụng xác thực chéo ngang
hàng). Mô hình chỉ ra chứng chỉ chéo được cấp giữa mỗi CA và chứng chỉ thực
thể cuối được CA cấp. Người cấp của một chứng chỉ là chủ thể của chứng chỉ
khác. Khoá công khai được xác nhận trong một chứng chỉ tương ứng với khoá
riêng được sử dụng để ký chứng chỉ khác.
Chương 2. Công nghệ xây dựng hạ tầng PKI và ứng dụng
2.1-Công nghệ CA ( EJBCA )
Phần mềm mã nguồn mở EJBCA là gói phần mềm cho phép triển khai một
hệ thống PKI hoàn chỉnh và đầy đủ chức năng. Nhằm tận dụng các tính chất ưu
việt của gói phần mềm này cũng như kiểm soát được quá trình phát triển và độ
an toàn của hệ thống, luận văn đã tiến hành cài đặt và triển khai thử nghiệm một
hệ thống chứng thực chéo theo kiến trúc PKI đơn giản, có thể sử dụng trong
thực tế
2.1.1 PKI – EJBCA
EJBCA là sản phẩm mã nguồn mở của hãng Primekey. Đây là một CA được
xây dựng trên công nghệ Java J2EE, nhờ đó hiệu suất hoạt động cũng như khả
năng tùy biến của CA là tương đối cao so với các hệ thống mã nguồn mở khác.
Bên cạnh đó, EJBCA còn cung cấp tính năng và thành phần (OCSP, RA Service,
Publisher,…) giúp cấu thành một hệ thống PKI tương đối đầy đủ và hoàn thiện
2.1.2 Đặc điểm kỹ thuật
Được xây dựng dựa trên Java, EJBCA thực sự là một nền tảng độc lập, chạy
trên hầu như toàn bộ các phần cứng phổ biến cũng như các hệ điều hành thông
dụng như Window, Linux. Để có thể hoạt động, EJBCA cần chạy trên một nền
tảng máy chủ ứng dụng (Application Server) cũng như một hệ thống Cơ sở dư
liệu nhất định. Về mặt này, EJBCA cũng hỗ trợ hầu hết các nền tảng App Server
phổ biến hiện nay như: JBOSS – Oracle Weblogic – IBM Web Sphere… cũng
như các hệ cơ sở dữ liệu từ miễn phí đến trả phí: MySQL, Oracle, IBM DB2,
MS SQL,…
Bên cạnh đó, EJBCA còn có một số điểm đặc trưng sau:
- Cung cấp khả năng xây dựng CA theo nhiều mức, không giới hạn số lượng
CA;
- Hỗ trợ thuật toán RSA với độ dài khóa lên tới 4096 bits;
- Hỗ trợ các thuật toán DSA với độ dài khóa lên tới 1024 bits;
- Hỗ trợ các hàm băm như MD5, SHA-1, SHA-256;
- Chứng thư được phát hành tuân thủ nghiêm ngặt chuẩn X509
2.1.3 Kiến trúc EJBCA

EJBCA được xây dựng với kiến trúc phân tầng, cụ thể như sau:
- Data Tier – tầng dữ liệu: Tầng dữ liệu lưu trữ các chứng nhận, CRL cũng
như các thực thể cuối.
- Thành phần CA: Thành phần có chức năng tạo các CA gốc, CA con, chứng
nhận, CRL và giao tiếp với kho chứa LDAP để lưu trữ thông tin chứng nhận.
- Thành phần RA: Thành phần có chức năng tạo, xóa và hủy bỏ người dùng.
- Tầng Web Tier: Đây là giao diện (điển hình là giao diện người – máy bằng
đồ họa) để trình khách tương tác với hệ thống EJBCA, đồng thời quy định các
cấp độ và phạm vi truy cập thông tin khác nhau cho thực thể cuối.
- Trình khách: Trình khách là thực thể cuối hay người sử dụng như trình
khách thư điện tử, máy chủ web, trình duyệt web hay cổng VPN.
2.1.4 Chức năng
EJBCA là một tổ chức chứng nhận rất phổ biến hiện đang được sử dụng, một
trong những CA được ưa thích hiện nay. Các đặc trưng cơ bản của CA này bao
gồm sự lựa chọn của thuật toán ta cần như tùy chọn giữa các thuật toán SHA1
hay SHA256 với RSA và với các kích thước khóa khác nhau như 1024, 2048,
4096. 63
EJBCA cung cấp một số tính năng nổi bật về lựa chọn ngôn ngữ trong quá
trình cấu hình hệ thống. Ngoài ra ta cũng có thể chọn loại publisher chúng ta
muốn như LDAP, thư mục động (AD – Active Directory) hay một thiết kế
publisher tự làm.

2.1.5 Đánh giá


Ngoài EJBCA còn có các sản phẩm khác có thể triển khai hệ thống PKI hoàn
chỉnh như OpenCA và Windows 2003 Server CA. Do Windows 2003 Server CA
không phải là sản phẩm mã nguồn mở, không thể tự do phát triển cũng như
kiểm soát được quá trình phát triển và độ an toàn nên không được quan tâm tìm
hiểu.
EJBCA và OpenCA đều là các dự án PKI mã nguồn mở mạnh và hiện cũng
có nhiều phát triển đang được thực hiện cả 2 phần mềm này.
EJBCA là một CA và là một hệ thống quản lý PKI hoàn chỉnh, là một giải
pháp PKI rất mạnh, độc lập môi trường, hiệu suất cao, có thể mở rộng dựa trên
thành phần. Ngoài ra, EJBCA rất linh hoạt trong việc cung cấp các cách thức
hoạt động tùy chọn như một CA độc lập hoặc được tích hợp hoàn toàn trong
ứng dụng thương mại bất kỳ. Hơn nữa, tuy việc cấu hình hệ thống EJBCA phức
tạp hơn OpenCA rất nhiều nhưng hệ thống EJBCA khi đã đi vào hoạt động lại
mang đến rất nhiều tiện lợi và đơn giản cho người sử dụng trong việc phát sinh
và quản lý chứng nhận. Ngoài ra, khác với OpenCA, việc cập nhật CRL trong
EJBCA hoàn toàn tự động.
Ngoài ra, EJBCA được phát triển và cung cấp bởi PrimeKey, một công ty
PKI mã nguồn mở đứng đầu trên thế giới nên việc sử dụng EJBCA ta có thể
thưa hưởng từ năng lực phát triển của công ty và hoàn toàn yên tâm về tính an
toàn luôn có trong mã nguồn.
2.2- Công nghệ ứng dụng ( Apache WebServer )
2.2.1 Khái niệm
Apache HTTP server hay còn được gọi là Apache là phần mềm web server
được sử dụng rộng rãi nhất thế giới. Apache được phát triển và duy trì bởi một
cộng đồng mã nguồn mở dưới sự bảo trợ của Apache Software Foundation.
Apache được phát hành với giấy phép Apache License, là một phần mềm tự do,
miễn phí.

Apache có các tính năng như chứng thực người dùng, virtual hosting, hỗ trợ
CGI, FCGI, SCGI, WCGI, SSI, ISAPI, HTTPS, Ipv6,…

2.2.2 Cách thức hoạt động

Về cách thức hoạt động, Apache là một chương trình phần mềm chạy trên
máy chủ để thiết lập kết nối giữa máy chủ và trình duyệt. Sau đó, nó truyền, trao
đổi tập tin cấu trúc hai chiều có dạng người dùng – máy chủ (client – server).
Có thể nói, Apache là một phần mềm hoạt động đa nền tảng.
Cụ thể, khi người dùng truy cập vào trang web thì trình duyệt sẽ tiến hành
gửi yêu cầu lên máy chủ web. Kế đến, Apache thực hiện việc phản hồi thông
tin, bao gồm toàn bộ các tập tin tạo nên trang web (nội dung, hình ảnh, âm
thanh, video…) mà người dùng muốn truy cập. Thông qua giao thức HTTP,
server và client giao tiếp với nhau. Lúc này, Apache đóng vai trò đảm bảo tiến
trình giao tiếp được diễn ra mượt mà, bảo mật.
Nhờ có cách thức hoạt động này mà Apache trở thành nền tảng module
có tính tùy biến cao. Nó cung cấp cho quản trị viên quyền tắt hoặc tùy ý thêm
chức năng trên máy chủ. Ngoài ra, Apache còn có thêm module bảo mật
caching, chứng thực mật khẩu, URL rewriting,… để người dùng bảo vệ tối đa
website của mình.

2.2.3 Ưu điểm
Apache mang đến cho người dùng nhiều ưu điểm nổi bật như:
 Tiết kiệm chi phí vì Apache là phần mềm miễn phí và sử dụng mã nguồn mở.
 Độ tin cậy và ổn định cao, nhờ phần mềm được thường xuyên nâng cấp nhiều
phiên bản để vá lỗi bảo mật.
 Apache có tính linh hoạt cao và cấu trúc các module vô cùng tiện lợi. Hơn nữa,
phần mềm còn cấu hình dễ dàng, cách sử dụng đơn giản.
 Apache hoạt động đa nền tảng (Widows, Linux, Unix…). Đặc biệt, nó hoạt
động rất hiệu quả với website WordPress.
2.2.4 Nhược điểm
Apache vẫn còn tồn tại một số nhược điểm như:
 Không phù hợp với website có lượng truy cập lớn.
 Nhiều lựa chọn thiết lập nên dễ gây ra điểm yếu bảo mật.
Chương 3 : Vận hành hệ thống

3.1. Hạ tầng PKI


3.1.1. Cài đặt EJBCA
Cài đặt EJBCA (Docker)

Khởi động EJBCA Community container


Dùng Lệnh:
$ docker run -it --rm -p 80:8080 -p 443:8443 -h localhost -e
TLS_SETUP_ENABLED="true" keyfactor/ejbca-ce
Giao diện web EJBCA RA:

EJBCA hiện đang hoạt động và đã tạo ra một Management CA (được sử


dụng để quản lý PKI nội bộ trong EJBCA) cũng như một siêu quản trị viên có
toàn quyền.

P12 được đề cập trong đầu ra console ở trên là một cặp khóa sẽ được tạo bởi
máy chủ EJBCA khi truy cập URL được cung cấp. Định dạng P12 chứa khóa
riêng, chứng chỉ được ký bởi Management CA chứa khóa công khai, được mã
hóa và bảo vệ bằng mật khẩu.
`Nhập superadmin.p12 trong trình duyệt web của bạn bằng mật khẩu được in ở
dòng cuối cùng sau khi chạy tập lệnh..

3.1.4 - Nhập chứng chỉ vào trình duyệt

Để truy cập EJBCA CA UI, nhập chứng chỉ SuperAdmin đã tải xuống vào trình
duyệt web
Tiếp theo, trỏ trình duyệt đến https://localhost/ejbca/adminweb/ để truy cập
EJBCA bằng chứng chỉ đã nhập.EJBCA CA UI mở ra hiển thị trang quản trị.

3.1.2. Tạo RootCA


1. Chọn Certification Authorities trong CA Functions
2. Thêm RootCA
5.Chỉ định Hiệu lực của chứng chỉ CA là 10 năm.

6. Chọn Create để tạo CA.


7. RootCA đã được tạo và hiện thị trên quản lý.

3.1.3. Tạo SubCA


1. Từ RootCA đã tạo ở trên có thể tải xuống và nhập vào một server ejbca
khác hoặc có thể tạo SubCA từ RootCA trên trực tiếp trên cùng một nút.
2. Chọn Certification Authorities trong CA Functions.
3. Thêm SubCA
4. Chọn loại khóa

7) SubCA đã được tạo và hiện thị trên quản lý.


3.1.4. Cấu hình SSL Server Profiles
1. Chọn Certificate Profiles trong CA Functions
2. Chỉ định tên cho cấu hình chứng chỉ và chọn Add
3. Tìm tên trong danh sách và chọn edit

4. Chọn loại End Entity, mã hóa RSA độ dài 2048 bit và có hiệu lực 1 năm

5. Bỏ check Allow Key Usage Override


6. Tại Key Usage chọn Digital Signature và Key encipherment, tại Extended
Key Usage chọn Server Authentication.
7. Chọn CA muốn có thể sử dụng cấu hình này

8. Nhấp vào Save để lưu cài đặt và xem cấu hình chứng chỉ mới trong danh
sách
3.1.5. Phát hành chứng thư cho Server
1. Chọn End Entity Profiles trong RA Functions
2. Thêm mới một End Entity Profiles

3. Tìm End Entity Profiles vừa tạo và chọn Edit


4. Chọn hồ sơ chứng chỉ mặc định là SSLServerProfiles vừa cấu hình ở trên,
tiếp theo chọn CA mặc định là SubCA, khóa ở đây do người dùng tạo
5. Thực hiện lưu End Entity Profiles
6. Chọn RA Web, chọn Make New Request

7. Chọn thực thể cuối và tạo cặp khóa bởi CA

8. Nhập các trường như CN,...


9. Tạo tài khoản và mật khẩu
10.Sau khi điền đủ thông tin chọn tải về dạng pkcs12

11.Chứng chỉ sau khi được tải về

3.1.6. Cấu hình Client Profiles


1. Chọn Certificate Profiles trong CA Functions
2. Chỉ định tên cho cấu hình chứng chỉ và chọn Add
3. Tìm tên trong danh sách và chọn edit

4. Chọn loại End Entity, mã hóa ECDSA độ dài 256 bit và có hiệu lực 1
năm

5. Tại Key Usage chọn Digital Signature và Key encipherment, tại Extended
Key Usage chọn Client Authentication
6. Chọn CA muốn có thể sử dụng cấu hình này

7. Nhấn vào Save để lưu cài đặt và xem cấu hình chứng chỉ mới trong danh
sách
3.1.7. Phát hành chứng thư số cho Client
1. Chọn End Entity Profiles trong RA Functions
2. Thêm mới một End Entity Profiles

3. Tìm End Entity Profiles vừa tạo và chọn Edit


4. Chọn hồ sơ chứng chỉ mặc định là ClientProfiles vừa cấu hình ở trên, tiếp
theo chọn CA mặc định là SubCA, khóa ở đây do người dùng tạo
5. Chọn RA Web, chọn Make New Request
6. Chọn thực thể cuối và tạo cặp khóa bởi CA.

7. Điền thông tin vào các trường cần thiết


8. Tạo tài khoản và mật khẩu mới và thực hiện tải về file pkcs12
9. Chứng thư sau khi tải về
3.2. Ứng dụng
3.2.1. Cài đặt Apache Web Server và cấu hình SSL 1 chiều
1. Tạo 1 thư mục chứa chứng chỉ dạng .p12 và thực hiện trích xuất khóa và
chứng chỉ đối với chứng chỉ server.p12
2. Trích xuất khóa openssl pkcs12 -in server.p12 -out server.key -nodes -
nocerts
3. Trích xuất chứng chỉ openssl pkcs12 -in server.p12 -out server.crt -nokeys
4. Thực hiện cài Apache2
sudo apt install apache2
5. Tạo 1 file chứa thư mục .html
6. Truy cập đường dẫn cd /etc/apache2/sites-available/ chỉnh sửa file 000-
default.conf trong đó file server.crt và server.key được trích xuất ở trên
7. Lưu file và thực hiện restart apache2
8. Tải về file RootCA gốc và import vào trình duyệt chọn tin tưởng

9. Truy cập https://www.sonpham.com trang sẽ được kết nối an toàn


3.2.2. Cấu hình SSL 2 chiều
1. Từ file chứng thư số client đã tải về thực hiện trích xuất chứng chỉ
openssl pkcs12 -in Client.p12 -out client.crt -nokeys
2. Truy cập đường dẫn cd /etc/apache2/sites-available/ chỉnh sửa file 000-
default.conf trong đó file client.crt được trích xuất ở trên
3.

4. Lưu và khởi động lại dịch vụ apache2


5. Truy cập trang web https://www.sonpham.com kết quả sẽ bị chặn truy
cập.

6. Để truy cập được cần import file chứng chỉ và khóa của client vào trình
duyệt
7. Chọn OK và trở lại trang web sẽ nhận yêu cầu gửi chứng chỉ lên server,
chọn chứng chỉ client
8. Kết quả truy cập được web với kết nối an toàn
TÀI LIỆU THAM KHẢO
 https://ubuntu.com/tutorials/install-and-configure-apache#1-overview
 https://download.primekey.se/docs/EJBCA-Enterprise/latest/
Quick_Install_Guide.html
 https://doc.primekey.com/ejbca/ejbca-operations/ejbca-operations-
guide/ca-operations-guide/managing-certificate-profiles/create-a-
certificate-profile-for-ssl-servers
 https://doc.primekey.com/ejbca/ejbca-operations/ejbca-operations-
guide/ca-operations-guide/end-entities/issue-a-new-pkcs-12-keystore-
for-an-ssl-server
 https://linuxconfig.org/apache-web-server-ssl-authentication
 https://www.ssl.com/how-to/export-certificates-private-key-from-
pkcs12-file-with-openssl/#ftoc-heading-3

You might also like