Gần đây tôi đã gặp vấn đề với kho apt của công ty tôi. Vấn đề là nếu chúng ta sử dụng vận chuyển http tiêu chuẩn thì bất kỳ ai khác cũng có thể nhận được gói dễ dàng. Vì Công ty đang đóng gói phần mềm độc quyền của riêng mình và không muốn chia sẻ nó với mọi người, nên việc vận chuyển http trở thành một vấn đề. Không phải là một bi kịch mà là một vấn đề. Có một số cách để giới hạn quyền truy cập vào gói - tường lửa, hạn chế quyền truy cập ở cấp máy chủ web, sử dụng ssh làm phương tiện vận chuyển. Khá dễ dàng để đọc về chủ đề này có thể được tìm thấy ở đây: Hạn chế quyền truy cập vào Kho lưu trữ Debian riêng của bạn
Trong trường hợp của chúng tôi, chúng tôi đã quyết định sử dụng https xác thực + xác thực chứng chỉ ứng dụng khách. Tóm lại, tất cả những gì nó cần là:
- Chuẩn bị chứng chỉ tự ký, máy khách và máy chủ (sử dụng easy-rsa);
Định cấu hình máy chủ web phía trước kho lưu trữ chỉ chấp nhận https; Trong trường hợp nginx, nó có thể trông giống như:
server {
listen 443;
root /path/to/public;
server_name secure_repo;
ssl on;
ssl_certificate /etc/nginx/ssl/server.crt;
ssl_certificate_key /etc/nginx/ssl/server.key;
ssl_session_timeout 5m;
ssl_protocols SSLv3 TLSv1 TLSv1.1 TLSv1.2;
ssl_ciphers ALL:!ADH:!EXPORT56:RC4+RSA:+HIGH:+MEDIUM:+LOW:+SSLv3:;
ssl_prefer_server_ciphers on;
ssl_client_certificate /etc/nginx/ssl/ca.crt;
ssl_verify_client on;
location / {
autoindex on;
}
}
Đặt chứng chỉ ứng dụng khách, khóa máy khách và chứng chỉ ca vào / etc / apt / ssl và, trong trường hợp với Ubuntu, hãy thêm tệp 00https vào /etc/apt/apt.conf.d:
Debug::Acquire::https "true";
Acquire::https::example.com {
Verify-Peer "true";
Verify-Host "false";
CaInfo "/etc/apt/ssl/ca.crt";
SslCert "/etc/apt/ssl/client.crt";
SslKey "/etc/apt/ssl/client.key";
};
Hãy nhớ rằng, nếu bạn đang sử dụng chứng chỉ tự ký, điều quan trọng là tắt xác minh máy chủ: Verify-Host "false";
Nếu bạn không làm điều này, bạn sẽ gặp lỗi:
SSL: certificate subject name (blah-blah-blah) does not match target host name 'example.com'
Và ở đây chúng tôi đi, không có quyền truy cập trái phép vào kho lưu trữ. Vì vậy, đây là điều khá hữu ích và mạnh mẽ.