Thứ ba, 30/07/2013 | 00:00 GMT+7

Cách thiết lập chứng chỉ SSL với PhpMyAdmin trên VPS Ubuntu 12.04


Nội dung này đã cũ, không phù hợp với các phần mềm hiện tại, nên không còn được hiển thị!

Trạng thái: Không được dùng nữa

Bài viết này đề cập đến version Ubuntu không còn được hỗ trợ. Nếu bạn hiện đang vận hành một server chạy Ubuntu 12.04, ta thực sự khuyên bạn nên nâng cấp hoặc chuyển sang version Ubuntu được hỗ trợ:

Lý do: Ubuntu 12.04 đã hết hạn sử dụng (EOL) vào ngày 28 tháng 4 năm 2017 và không còn nhận được các bản vá hoặc cập nhật bảo mật. Hướng dẫn này không còn được duy trì.

Xem Thay vào đó:
Hướng dẫn này có thể vẫn hữu ích để tham khảo, nhưng có thể không hoạt động trên các bản phát hành Ubuntu khác. Nếu có, ta đặc biệt khuyên bạn nên sử dụng hướng dẫn được viết cho version Ubuntu mà bạn đang sử dụng. Bạn có thể sử dụng chức năng tìm kiếm ở đầu trang để tìm version mới hơn.

Giới thiệu

PhpMyAdmin là một giao diện user dựa trên web được sử dụng để dễ dàng quản trị database MySQL theo cách thân thiện trực quan. Bạn có thể cài đặt phần mềm này để quản lý dữ liệu trên VPS của bạn từ xa mà không cần truy cập shell.

Mặc dù phpMyAdmin rất hữu ích nhưng nó cũng có thể không an toàn nếu không được cấu hình đúng cách. Hướng dẫn này sẽ trình bày cách cài đặt phpMyAdmin trên LAMP (Linux, Apache, MySQL và PHP5) trên máy Ubuntu 12.04 sử dụng SSL và các hạn chế truy cập.

Cài đặt ban đầu

Hướng dẫn này giả định bạn có quyền truy cập root vào server Ubuntu 12.04 và bạn đã cấu hình LAMP. Làm theo hướng dẫn này để cài đặt Apache, MySQL và PHP trên Ubuntu 12.04 nếu bạn chưa cài đặt .

Đăng nhập vào server của bạn và tiếp tục khi đã sẵn sàng.

Cách cài đặt PhpMyAdmin trên Ubuntu

Ubuntu 12.04 bao gồm phpMyAdmin trong repository lưu trữ mặc định của nó. Cài đặt bằng lệnh này:

sudo apt-get install phpmyadmin

Chọn "Apache2" làm server để cấu hình trong quá trình cài đặt. Chọn "Có" để cho phép database phpMyAdmin được cấu hình tự động.

Nhập password bạn đã cài đặt cho user MySQL root trong khi cài đặt, rồi gán password cho quy trình phpMyAdmin sử dụng để đăng nhập.

Cấu hình Apache để tải PhpMyAdmin

Yêu cầu Apache cung cấp nguồn cấu hình phpMyAdmin để cho phép truy cập vào ứng dụng.

Chỉnh sửa file cấu hình Apache chính với quyền root:

sudo nano /etc/apache2/apache2.conf

Cuộn xuống cuối file và nhập chỉ thị sau để Apache đọc file cấu hình cụ thể phpMyAdmin:

Include /etc/phpmyadmin/apache.conf

Khởi động lại server để các thay đổi có hiệu lực:

sudo service apache2 restart

Bạn có thể nhận được một thông báo có nội dung:

[warn] The Alias directive in /etc/phpmyadmin/apache.conf at line 3 will probably never match because it overlaps an earlier Alias.
apache2: Could not reliably determine the server's fully qualified domain name, using 127.0.0.1 for ServerName

Đây chỉ là những cảnh báo và có thể được bỏ qua một cách an toàn.

Cách cài đặt .htaccess cho PhpMyAdmin

Bước đầu tiên trong việc bảo mật phpMyAdmin là cài đặt các hạn chế .htaccess. Điều này sẽ yêu cầu đăng nhập password trước khi truy cập vào giao diện phpMyAdmin.

Đầu tiên, hãy cấu hình cấu hình apache phpMyAdmin để cho phép sử dụng các file .htaccess. Mở file cấu hình apache phpMyAdmin với quyền root:

sudo nano /etc/phpmyadmin/apache.conf

Dưới dòng có nội dung "DirectoryIndex index.php", hãy chèn một dòng có nội dung "AllowOverride All":

<Directory /usr/share/phpmyadmin>
	Options FollowSymLinks
	DirectoryIndex index.php
	AllowOverride All
	. . .

Lưu và đóng file .

Bây giờ, hãy tạo một file .htaccess dành riêng cho phpMyAdmin:

sudo nano /usr/share/phpmyadmin/.htaccess

Chèn văn bản sau vào file :

AuthType Basic
AuthName "Restricted Files"
AuthUserFile /etc/phpmyadmin/.htpasswd
Require valid-user

Lưu và đóng file .

Thay đổi này làm cho trang web của ta nhìn vào "/etc/phpmyadmin/.htpasswd" để có danh sách thông tin đăng nhập hợp lệ.

Ta có thể tạo file đó và account đăng nhập bằng lệnh sau. Thay thế tên user bạn muốn sử dụng:

sudo htpasswd -c /etc/phpmyadmin/.htpasswd user_name

Bạn cần chọn password cho user mới.

Bây giờ, khởi động lại Apache để bật các hạn chế truy cập:

sudo service apache2 restart

Cách cài đặt SSL với PhpMyAdmin

Ta sẽ chuyển dữ liệu nhạy cảm giữa giao diện web và server , vì vậy ta cần cài đặt SSL đảm bảo dữ liệu của ta không được gửi ở dạng văn bản thuần túy.

Trước tiên, hãy yêu cầu Apache bật hỗ trợ SSL và khởi động lại server để thực hiện thay đổi bằng các lệnh sau:

sudo a2enmod ssl
sudo service apache2 restart

Tạo folder để lưu trữ certificate SSL của ta , sau đó tạo khóa và certificate bằng các lệnh sau:

sudo mkdir /etc/apache2/ssl
sudo openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout /etc/apache2/ssl/apache.key -out /etc/apache2/ssl/apache.crt

Điều này sẽ tạo ra một certificate có giá trị trong 365 ngày. Bạn sẽ được hỏi một số câu hỏi. Hãy điền chúng tốt nhất có thể.

Câu hỏi mà bạn phải trả lời chính xác là "Tên thường gọi". Sử dụng domain hoặc Địa chỉ IP server của bạn cho trường này.

You are about to be asked to enter information that will be incorporated
into your certificate request.
What you are about to enter is what is called a Distinguished Name or a DN.
There are quite a few fields but you can leave some blank
For some fields there will be a default value,
If you enter '.', the field will be left blank.
-----
Country Name (2 letter code) [AU]:US
State or Province Name (full name) [Some-State]:New York
Locality Name (eg, city) []:NYC
Organization Name (eg, company) [Internet Widgits Pty Ltd]:Awesome Inc
Organizational Unit Name (eg, section) []:Dept of Merriment
Common Name (e.g. server FQDN or YOUR name) []:example.com                  
Email Address []:webmaster@awesomeinc.com

Cấu hình Apache để sử dụng certificate SSL

Đến đây bạn đã tạo certificate SSL, bạn cần yêu cầu Apache sử dụng SSL. Mở file cấu hình server ảo mặc định với quyền root:
sudo nano /etc/apache2/sites-available/default

Bắt đầu bằng cách thay đổi khai báo "<VirtualHost *: 80>" thành "<VirtualHost *: 443>", là cổng SSL mặc định.

Sau thay đổi đó, hãy thêm phần "Tên server " trong định nghĩa VirtualHost chỉ định domain hoặc địa chỉ IP bạn đã sử dụng khi tạo certificate SSL của bạn , tiếp theo là ": 443":

<VirtualHost *:443>
	ServerAdmin webmaster@localhost
	ServerName example.com:443
	. . .

Trước khi đóng file , hãy thêm các dòng sau ngay trước thẻ đóng "</VirtualHost>":

SSLEngine on
SSLCertificateFile /etc/apache2/ssl/apache.crt
SSLCertificateKeyFile /etc/apache2/ssl/apache.key

Lưu và đóng file .

Buộc SSL trong PhpMyAdmin

Bây giờ ta phải nói với phpMyAdmin rằng SSL phải được sử dụng khi nào kết nối được thực hiện.

Ta sẽ thực hiện việc này trong file cấu hình phpMyAdmin. Mở file có quyền root để chỉnh sửa:

sudo nano /etc/phpmyadmin/config.inc.php

Cuộn xuống cuối file và thêm dòng sau:

$cfg['ForceSSL'] = true;

Đây là dòng duy nhất cần thiết để yêu cầu SSL cho phpMyAdmin.

Lưu và đóng file .

Bật thay đổi SSL

Nếu nó chưa được kích hoạt, hãy kích hoạt trang web bằng lệnh sau:

sudo a2ensite default

Khởi động lại dịch vụ Apache để áp dụng các thay đổi :

sudo service apache2 restart

Xem kết quả

Để truy cập giao diện phpMyAdmin, hãy chuyển đến domain hoặc địa chỉ IP server của bạn, theo sau là "/ phpmyadmin" bằng trình duyệt của bạn:

example.com/phpmyadmin

Bạn cần nhập tên user và password mà bạn đã cài đặt với file .htaccess.

Trang đăng nhập htaccess PhpMyAdmin

Sau đó, bạn có thể sẽ thấy một màn hình phàn nàn về việc certificate SSL không được tin cậy.

PhpMyAdmin Trang certificate  SSL không hợp lệ

Điều này được mong đợi bởi vì ta đã tự tạo certificate SSL và không thông qua cơ quan cấp certificate SSL. Điều này là tốt cho các mục đích của ta .

Nhấp vào "tiến hành" hoặc "tiếp tục" để tiếp tục. Bạn cần nhập lại password .htaccess vì ta hiện đang cố gắng truy cập trang web thông qua SSL.

Đến đây bạn sẽ thấy trang đăng nhập phpMyAdmin, nơi bạn có thể nhập thông tin đăng nhập của bạn mà bạn đã cài đặt trong quá trình cài đặt.

Username: root
Password: your_phpmyadmin_password
Màn hình đăng nhập PhpMyAdmin

Đến đây bạn sẽ được đưa vào trang quản trị phpMyConfig chính:

Trang cấu hình chính của PhpMyAdmin
Bởi Justin Ellingwood

Tags:

Các tin trước

Cách cài đặt và quản lý trình giám sát trên Ubuntu và VPS Debian 2013-07-23
Cách tạo ứng dụng Node.js bằng Sails.js trên VPS Ubuntu 2013-07-16
Cách cài đặt Chef và Ruby với RVM trên VPS Ubuntu 2013-07-15
Cài đặt và sử dụng Ranger, Trình quản lý tệp đầu cuối, trên VPS Ubuntu 2013-07-12
Cách triển khai ứng dụng Flask trên VPS Ubuntu 2013-07-03
Cách cài đặt và sử dụng màn hình trên server cloud Ubuntu 2013-07-01
Cách thiết lập firewall với UFW trên server cloud Ubuntu và Debian 2013-06-25
Cách cài đặt Gerrit trên Ubuntu Cloud Server 2013-06-18
Cách cài đặt diễn đàn Vanilla trên Ubuntu 12.10 2013-06-14
Cách giới hạn mức sử dụng CPU trên Ubuntu 12.10 2013-06-08