Làm thế nào để làm cho Firefox tin tưởng chứng chỉ hệ thống CA?


29

Quản trị viên mạng của chúng tôi gần đây đã cho phép kiểm tra HTTPS trên tường lửa / bộ định tuyến của chúng tôi. Đối với người dùng IE, điều này là tốt vì tất cả các certs đều được phân phối thông qua Active Directory cho các máy gia nhập miền. Tuy nhiên, chúng tôi có một số người dùng Firefox hiện đang ném lỗi chứng chỉ trên thực tế trên mọi trang web HTTPS.

Firefox sử dụng cửa hàng CA của riêng họ và họ cũng thực sự tự hào về điều đó . Có cách nào để khiến Firefox tin tưởng vào kho lưu trữ chứng chỉ hệ thống theo mặc định không? Tôi thấy rất nhiều bài viết về cách làm điều này trong Linux, nhưng không có gì cho Windows.

Tôi nghi ngờ từ bài đăng này rằng nó không thể, nhưng bài viết đó đã gần 4 tuổi.

Câu trả lời:


46

Vì Firefox 49 có một số hỗ trợ cho chứng chỉ Windows CA và hỗ trợ cho Active Directory được cung cấp chứng chỉ gốc doanh nghiệp kể từ Firefox 52. Nó cũng được hỗ trợ trong macOS để đọc từ Keychain kể từ phiên bản 63.

Vì Firefox 68, tính năng này được bật theo mặc định trong phiên bản ESR (doanh nghiệp), nhưng không phải trong bản phát hành nhanh (tiêu chuẩn).

Bạn có thể kích hoạt tính năng này cho Windows và macOS about:configbằng cách tạo giá trị boolean này:

security.enterprise_roots.enabled

và đặt nó thành true.

Đối với GNU / Linux, điều này thường được quản lý bởi p11-kit-trust và không cần cờ.

Triển khai hệ thống cấu hình rộng

Kể từ Firefox 64, có một cách mới và được đề xuất bằng cách sử dụng các chính sách, được ghi lại tại https://support.mozilla.org/en-US/kb/setting-cert ve- Authorities- firefox

Đối với các phiên bản cũ, thư mục cài đặt Firefox có thể được truy xuất từ ​​Windows registry, sau đó chuyển đến defaults\pref\thư mục con và tạo một tệp mới với các mục sau:

/* Allows Firefox reading Windows certificates */    
pref("security.enterprise_roots.enabled", true);

Lưu nó với .jsphần mở rộng, ví dụ trustwincerts.jsvà khởi động lại Firefox. Các mục sẽ xuất hiện trong about:configcho tất cả người dùng.

Triển khai hệ thống Chứng chỉ Windows rộng

Trong Firefox từ 49 đến 51, nó chỉ hỗ trợ cửa hàng "Root". Kể từ Firefox 52, nó hỗ trợ các cửa hàng khác, bao gồm cả những cửa hàng được thêm từ tên miền qua AD.

Đây là một chút ngoài phạm vi nhưng giải thích đó là kho lưu trữ chứng chỉ duy nhất được Firefox hỗ trợ cho các phiên bản 49 đến 51 hoặc chỉ để thử nghiệm cục bộ. Bởi vì điều này triển khai cho tất cả người dùng máy cục bộ, nó yêu cầu đặc quyền của Quản trị viên trong cửa sổ CMD / PowerShell của bạn hoặc trong tập lệnh triển khai tự động của riêng bạn.:

certutil -addstore Root path\to\cafile.pem

Điều này cũng có thể được thực hiện từ Bảng điều khiển quản lý bằng cách nhấp vào nhiều cửa sổ nếu bạn thích cách chuột ( Cách: Xem chứng chỉ với phần đính kèm MMC ).


Bạn có biết trong kho lưu trữ chứng chỉ mà chứng chỉ cần được nạp vào để làm việc này không?
ETL

@ETL Tôi chỉ thử nghiệm với cửa hàng ủy thác hệ thống máy cục bộ, điều này rất tốt vì nó hoạt động với tất cả các tài khoản máy. Theo trang wiki Mozilla được đề cập trong một câu trả lời khác, họ hy vọng sẽ hoàn thành hỗ trợ chứng chỉ đầy đủ (bao gồm cả AD certs) trong Firefox 52. Theo mặc định, certmgr.msc hiển thị chứng chỉ người dùng, nhưng bạn cần thêm nó vào chứng chỉ máy cục bộ. Bạn cũng có thể sử dụng Windows certutil (đừng nhầm lẫn với certutil NSS của Mozilla) để triển khai nó.

Luận điểm Tôi có chứng chỉ tại chỗ (Tôi đang thêm chúng bằng Chính sách nhóm vào Cơ quan chứng nhận gốc đáng tin cậy của máy cục bộ). Tôi đã bật tùy chọn Firefox nhưng chứng chỉ vẫn không được sử dụng trên FF 50.1. Có phải đó là bạn có certs của bạn?
ETL

2
Danh sách kiểm tra là: 1: Firefox không liệt kê các chứng chỉ Windows trong Advanced -> Chứng chỉ, nhưng sẽ hoạt động như mọi cách đáng tin cậy. 2: Chứng chỉ máy chủ phải được tạo bằng CA đó, sử dụng CA trực tiếp vì chứng chỉ máy chủ sẽ không hoạt động. 3: Chứng chỉ máy chủ phải được tạo đúng, kế thừa chính sách CA cho tên thay thế chủ đề. 4: trong trường hợp certstore là sai, hãy thử sử dụng certutil của Microsoft, tôi làm điều này: trong cửa sổ cmd của Quản trị viên: certutil -addstore Root path\to\cafile.pem(hoặc .crt)

1
Điều này cũng được đề cập trong Mozilla Wiki .
Franklin Yu

2

Bạn đã xem xét việc triển khai các chứng chỉ đó lên Firefox cũng như cho cửa hàng chứng chỉ Windows chưa?

https://wiki.mozilla.org/CA:AddRootToFirefox chi tiết một vài tùy chọn:

  1. Sửa đổi cơ sở dữ liệu chứng chỉ trực tiếp bằng cách sử dụng certutil.
  2. Sử dụng tính năng autoconfig của Firefox, bằng cách đặt tệp javascript bên cạnh tệp nhị phân, để thêm chứng chỉ:

    var certdb = Cc["@mozilla.org/security/x509certdb;1"].getService(Ci.nsIX509CertDB);
    var certdb2 = certdb;
    try {
        certdb2 = Cc["@mozilla.org/security/x509certdb;1"].getService(Ci.nsIX509CertDB2);
    } catch (e) {}
    cert = "MIIHPT...zTMVD"; // This should be the certificate content with no line breaks at all.
    certdb2.addCertFromBase64(cert, "C,C,C", "");
    
  3. Phân phối các tệp cơ sở dữ liệu chứng chỉ trực tiếp.
  4. Gói Firefox để cài đặt, bao gồm các chứng chỉ trong bản phân phối của bạn.
  5. Sử dụng CCK2 để tạo tiện ích mở rộng thêm chứng chỉ.

1

Không có cách nào tốt để xử lý việc sử dụng cửa hàng hệ thống, nhưng có một cách giải quyết tốt (buộc phải sử dụng cửa hàng tương thích firefox tùy chỉnh).

Các đoạn script dưới đây hoạt động tốt khi đăng nhập / đăng xuất.

Stop-Process -processname firefox

$DBPath="\\yourserver\yourshare\cert8.db"
$FirefoxProfiles=Get-ChildItem $Env:appdata\Mozilla\Firefox\Profiles     
$DB=Get-Item $DBPath    
ForEach ( $Profile in $FirefoxProfiles )
{
    $FullPath=join-path $Env:appdata\Mozilla\Firefox\Profiles $Profile
    Copy-Item $DB $FullPath
    $FullPath
}

Bạn thậm chí có thể mở rộng một ý tưởng như thế này và lấy danh sách các certs đáng tin cậy hiện tại ra khỏi cửa hàng Windows và tạo tệp cert8.db một cách nhanh chóng bằng cách sử dụng chứng chỉ Mozilla được tham chiếu trong câu trả lời của wfaulk.
Ryan Bolger

1

dự án miễn phí cung cấp khả năng quản lý chứng chỉ gốc Firefox bằng chính sách nhóm. Bạn có thể cài đặt hoặc xóa chứng chỉ gốc khỏi cơ sở dữ liệu Firefox.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.