Cách thiết lập Apache Subversion với Let's encrypt SSL trên Ubuntu 18.04

theanh

Administrator
Nhân viên
Apache Subversion hay SVN là một hệ thống kiểm soát phiên bản và sửa đổi phần mềm nguồn mở do Apache Software Foundation phát triển. Hệ thống này được sử dụng để duy trì các phiên bản hiện tại và lịch sử của mã nguồn, tài liệu và trang web.

Subversion hay svn được sử dụng rộng rãi cho cộng đồng dự án lớn và nguồn mở như Apache Software Foundation, FreeBSD, GCC, SourceForge, v.v.

Trong bài viết này, tôi sẽ chỉ cho bạn cách thiết lập Apache Subversion bằng máy chủ Ubuntu 18.04 LTS. Chúng tôi sẽ cài đặt và cấu hình phần mềm svn với Apache làm máy chủ web, bật 'xác thực cơ bản' cho người dùng và truy cập an toàn bằng cách sử dụng Letsencrypt SSL để truy cập kho lưu trữ.

Đối với những ai thích GIT, hướng dẫn GIT Ubuntu 18.04 có tại đây.

Điều kiện tiên quyết​

  • Ubuntu 18.04
  • Quyền root

Những việc chúng tôi sẽ làm​

  1. Cài đặt máy chủ web Apache2 trên Ubuntu 18.04
  2. Cài đặt Apache Subversion (SVN)
  3. Cấu hình Kho lưu trữ Subversion
  4. Tạo SSL Letsencrypt cho Ubuntu Apache2
  5. Cấu hình Máy chủ ảo Subversion trên Apache2
  6. Kiểm tra

Bước 1 - Cài đặt Máy chủ web Apache2 trên Ubuntu 18.04 LTS​

Trong bước đầu tiên này, chúng ta sẽ cài đặt máy chủ web Apache2 và thêm các dịch vụ ssh và HTTP mới vào cấu hình tường lửa ufw.

Cài đặt máy chủ web Apache2 bằng lệnh apt bên dưới.
Mã:
sudo apt install apache2 apache2-utils -y
Sau khi cài đặt hoàn tất, hãy thêm các dịch vụ SSH và HTTP vào cấu hình tường lửa ufw.

Chạy các lệnh ufw bên dưới.
Mã:
ufw allow ssh
ufw allow http
Bật tường lửa.
Mã:
ufw enable
Bây giờ hãy khởi động dịch vụ Apache2 và cho phép nó khởi chạy mỗi lần khởi động hệ thống.
Mã:
systemctl start apache2
systemctl enable apache2
Máy chủ web Apache2 đã hoạt động và các dịch vụ SSH và HTTP đã được thêm vào danh sách dịch vụ tường lửa.


Bước 2 - Cài đặt Apache Subversion (SVN)​

Trong hướng dẫn này, chúng ta sẽ cài đặt các gói subversion và svn libapache từ kho lưu trữ Ubuntu chính thức.

Cài đặt Subversion bằng lệnh apt bên dưới.
Mã:
sudo apt install subversion subversion-tools libapache2-mod-svn -y
Bây giờ hãy kiểm tra lệnh svn.
Mã:
svn --version
Apache Subversion (SVN) đã được cài đặt trên Ubuntu 18.04 Server.


Bước 3 - Cấu hình kho lưu trữ Subversion​

Sau khi cài đặt Subversion, chúng ta sẽ cấu hình thư mục kho lưu trữ Subversion chính. Chúng ta sẽ tạo một thư mục 'svn' mới sẽ được sử dụng để lưu trữ tất cả mã nguồn và kho lưu trữ.

Tạo một thư mục chính '/svn' mới.
Mã:
mkdir /svn
Và tạo một kho lưu trữ mẫu mới có tên 'hakase-project' bằng lệnh svnadmin bên dưới.
Mã:
svnadmin create /svn/hakase-project
Bây giờ hãy thay đổi chủ sở hữu của thư mục '/svn/hakase-project' thành người dùng và nhóm 'apache'.
Mã:
sudo chown -R apache:apache /svn/hakase-project
Và kho lưu trữ svn đã được tạo.


Bước 4 - Tạo chứng chỉ SSL Letsencrypt​

Trong hướng dẫn này, chúng ta sẽ cấu hình máy chủ svn sử dụng kết nối HTTPS với tên miền có tên 'svn.hakase-labs.io'. Chúng tôi sẽ sử dụng SSL Letsencrypt miễn phí và có thể tạo bằng công cụ certbot.

Cài đặt certbot trên máy chủ Ubuntu bằng lệnh yum bên dưới.
Mã:
sudo apt install certbot -y
Sau khi cài đặt hoàn tất, chúng ta cần thêm dịch vụ HTTPS vào danh sách dịch vụ tường lửa ufw.

Chạy lệnh ufw bên dưới.
Mã:
ufw allow https
ufw reload
Bây giờ hãy dừng dịch vụ httpd để chúng ta có thể tạo SSL Letsencrypt bằng máy chủ web tạm thời 'độc lập'.
Mã:
systemctl stop apache2


Tạo SSL Letsencrypt cho tên miền 'svn.hakase-labs.io' bằng lệnh certbot bên dưới.
Mã:
certbot certonly --rsa-key-size 4096 --standalone --agree-tos --no-eff-email --email [emailprotected] -d svn.hakase-labs.io
Sau khi hoàn tất, bạn sẽ nhận được các tệp chứng chỉ bên trong thư mục '/etc/letsencrypt/live'.


Bước 5 - Cấu hình Subversion Virtual Host trên Apache2​

Trong bước này, chúng ta sẽ tạo cấu hình Apache httpd mới để truy cập svn. Chúng ta sẽ cấu hình kho lưu trữ svn bằng tên miền 'svn.hakase-labs.io' và chỉ những người dùng đã đăng ký mới có thể truy cập bằng xác thực HTTP cơ bản.

Đi đến thư mục cấu hình '/etc/apache2'.
Mã:
cd /etc/apache2/
Tạo cấu hình máy chủ ảo subversion mới 'svn.conf' trên thư mục 'sites-available'.
Mã:
cd sites-available/
vim svn.conf
Dán cấu hình bên dưới.
Mã:
ServerName svn.hakase-labs.ioDocumentRoot /var/www/htmlChuyển hướng vĩnh viễn / https://svn.hakase-labs.ioDocumentRoot /var/www/htmlServerName svn.hakase-labs.ioSSLEngine onSSLProtocol all -SSLv2SSLCipherSuite ALL:!ADH:!EXPORT:!SSLv2:RC4+RSA:+HIGH:+MEDIUM:+LOWSSLCertificateFile /etc/letsencrypt/live/svn.hakase-labs.io/fullchain.pemSSLCertificateKeyFile /etc/letsencrypt/live/svn.hakase-labs.io/privkey.pemErrorLog /var/log/apache2/svn_error_logTransferLog /var/log/apache2/svn_access_logLogLevel cảnh báoDAV svnSVNParentPath /svn/AuthType BasicAuthName "Authorization Realm"AuthUserFile /etc/subversion/svn.usersRequire valid-user SSLOptions +StdEnvVarsSetEnvIf User-Agent ".*MSIE.*" \ nokeepalive ssl-unclean-shutdown \ downgrade-1.0 force-response-1.0CustomLog /var/log/apache2/ssl_request_log \ "%t %h %{SSL_PROTOCOL}x %{SSL_CIPHER}x \"%r\" %b"
Lưu và thoát.

Tiếp theo, chúng ta cần tạo một danh sách người dùng mới có thể xem và cam kết tệp vào kho lưu trữ.

Tạo một người dùng mới có tên 'hakase' bằng lệnh htpasswd.
Mã:
sudo htpasswd -cm /etc/subversion/svn.users hakase


Bật mô-đun SSL trên apache và bật svn máy chủ ảo bằng cách chạy các lệnh bên dưới.
Mã:
sudo a2enmod ssl
sudo a2ensite svn
Khởi động lại dịch vụ Apache2.
Mã:
systemctl restart apache2


Cấu hình máy chủ ảo cho subversion đã được tạo và người dùng 'hakase' hiện có quyền truy cập để xem và cam kết mã nguồn vào kho lưu trữ 'hakase-project'.

Bước 6 - Kiểm tra​

Xem kho lưu trữ​

Mở trình duyệt web của bạn và nhập URL máy chủ, của tôi là URL bên dưới).


Và bạn sẽ được hiển thị xác thực người dùng cơ bản.



Đăng nhập bằng tên người dùng và mật khẩu 'hakase', bạn sẽ nhận được kho lưu trữ trang trống như bên dưới.


Nhập dự án vào kho lưu trữ SVN​

Bây giờ chúng ta sẽ nhập các mẫu dự án mẫu svn vào kho lưu trữ 'hakase-project'.

Tạo một thư mục dự án svn-templates mới.
Mã:
mkdir -p ~/svn-templates/{trunk,branches,tags}
Thêm thư mục mẫu vào kho lưu trữ 'hakase-project' bằng lệnh svn bên dưới.
Mã:
svn import -m 'Initial import' ~/svn-templates/ https://svn.hakase-labs.io/repo/hakase-project/ --username hakase
Bạn sẽ được hỏi về một số điều, hãy thực hiện theo những cách sau.
  • Nhập 'p' để thêm vĩnh viễn chứng chỉ Letsencrypt.
  • Nhập tên người dùng và mật khẩu 'hakase'.
  • Và nhập 'yes' để xác nhận về việc lưu mật khẩu chưa mã hóa.


Kiểm tra 'hakase-project' từ trình duyệt web và bạn sẽ nhận được tất cả thư mục mẫu trên đó.


Sao chép Kho lưu trữ​

Sau khi tạo và tải lên thư mục mẫu svn, chúng tôi sẽ thử sao chép kho lưu trữ vào môi trường cục bộ.

Đăng nhập vào người dùng không phải root/bình thường.
Mã:
useradd -m -s /bin/bash misaka
su - misaka
Sao chép vào Kho lưu trữ 'hakase-project' thư mục cục bộ có tên 'myproject' là người dùng 'hakase'.
Mã:
svn co https://svn.hakase-labs.io/repo/hakase-project/ ~/myproject --username hakase


Kiểm tra thư mục 'myproject' mới và bạn sẽ nhận được tất cả các mẫu svn.
Mã:
tree ~/myproject

Cam kết mã nguồn​

Đi tới thư mục 'myproject'.
Mã:
cd myproject/
Tạo một số tệp trên thư mục 'trunk'.
Mã:
echo 'đây là kho lưu trữ của tôi' > trunk/test-hakase.txt
echo 'đây là kho lưu trữ của tôi01' > trunk/test-hakase01.txt
echo 'đây là repo02 của tôi' > trunk/test-hakase02.txt
Thêm và xác nhận
Mã:
svn add trunk/* --username hakase
svn commit -m 'new file added' --username hakase


Kiểm tra kho lưu trữ từ trình duyệt web và bạn sẽ thấy tất cả các tệp đã được thêm vào kho lưu trữ.



Quá trình cài đặt và cấu hình Apache Subversion trên Ubuntu 18.04 LTS Server đã hoàn tất thành công.

Tham khảo​

 
Back
Bên trên