Firefox 트러스트 시스템 CA 인증서를 만드는 방법은 무엇입니까?


29

최근 네트워크 관리자가 방화벽 / 라우터에서 HTTPS 검사를 활성화했습니다. IE 사용자의 경우 도메인 조인 된 컴퓨터에 대한 인증서가 모두 Active Directory를 통해 배포되었으므로 문제가 없습니다. 그러나 현재 모든 HTTPS 사이트에서 인증서 오류를 발생시키는 수많은 Firefox 사용자가 있습니다.

Firefox는 자체 CA 저장소를 사용하며 실제로 자랑스럽게 생각합니다 . Firefox가 시스템 인증서 저장소를 기본적으로 신뢰하도록하는 방법이 있습니까? Linux 에서이 작업을 수행하는 방법에 대한 많은 게시물이 있지만 Windows에는 해당되지 않습니다.

나는 이 게시물 에서 가능하지 않다고 의심 하지만 그 게시물은 거의 4 세입니다.

답변:


46

Firefox 49부터 Windows CA 인증서 와 Firefox 52 이후의 Active Directory 제공 엔터프라이즈 루트 인증서에 대한 지원일부 있습니다 . 또한 macOS에서는 버전 63 이후 키 체인에서 읽을 수 있도록 지원됩니다.

Firefox 68부터이 기능은 기본적으로 ESR (엔터프라이즈) 버전에서 활성화되지만 (표준) 빠른 릴리스에서는 활성화되지 않습니다.

about:config이 부울 값을 작성 하여 Windows 및 macOS에서이 기능을 사용할 수 있습니다 .

security.enterprise_roots.enabled

로 설정하십시오 true.

GNU / Linux의 경우 일반적으로 p11-kit-trust로 관리되며 플래그가 필요하지 않습니다.

구성 시스템 전체 배포

Firefox 64부터 https://support.mozilla.org/en-US/kb/setting-certificate-authorities-firefox에 문서화 된 정책을 사용하여 새롭고 권장되는 방법이 있습니다.

레거시 버전의 경우 Windows 레지스트리에서 Firefox 설치 폴더를 검색 한 후 defaults\pref\서브 디렉토리 로 이동하여 다음을 사용하여 새 파일을 작성하십시오.

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

.js확장명으로 저장하고 trustwincerts.jsFirefox를 다시 시작하십시오. 항목이 about:config모든 사용자에게 나타납니다 .

시스템 전체에 Windows 인증서 배포

Firefox는 49에서 51까지 "루트"저장소 만 지원합니다. Firefox 52부터 AD를 통해 도메인에서 추가 된 상점을 포함한 다른 상점을 지원합니다.

이것은 범위를 약간 벗어 났지만 버전 49에서 51까지 또는 Firefox에서 로컬 테스트를 위해 지원하는 유일한 인증서 저장소를 설명합니다. 이 작업은 모든 로컬 컴퓨터 사용자에게 배포되므로 CMD / PowerShell 창 또는 자체 자동화 된 배포 스크립트에서 관리자 권한이 필요합니다.

certutil -addstore Root path\to\cafile.pem

마우스 방식을 선호하는 경우 ( 방법 : MMC 스냅인으로 인증서보기) 많은 창을 클릭하여 관리 콘솔에서이를 수행 할 수도 있습니다 .


이것이 작동하려면 인증서를 어느 인증서 저장소에로드해야하는지 알고 있습니까?
ETL

@ETL 로컬 컴퓨터 시스템 신뢰 저장소로만 테스트했으며 모든 컴퓨터 계정에서 작동하므로 좋습니다. 다른 응답에서 언급 한 Mozilla 위키 페이지에 따르면 Firefox 52에서 전체 인증서 지원 (AD 인증서 포함)을 완료 할 것으로 예상됩니다. 기본적으로 certmgr.msc는 사용자 certstore를 표시하지만 로컬 컴퓨터 certstore에 추가해야합니다. Windows certutil (Mozilla의 NSS certutil과 혼동하지 마십시오)을 사용하여 배포 할 수도 있습니다.

Arg. 인증서가 있습니다 (그룹 정책을 사용하여 로컬 컴퓨터의 신뢰할 수있는 루트 인증 기관에 추가하고 있습니다). Firefox 옵션을 켰지 만 FF 50.1에서는 여전히 인증서가 사용되지 않습니다. 당신은 당신의 증명서를 가지고 있었습니까?
ETL

2
점검 목록은 다음과 같습니다. 1 : Firefox는 고급-> 인증서에 Windows 인증서를 나열하지 않지만 어쨌든 신뢰할 수있는 것으로 작동해야합니다. 2 : 서버 인증서가 작동하지 않으므로 CA를 사용하여 해당 CA로 서버 인증서를 작성해야합니다. 3 : 주체 대체 이름에 대한 CA 정책을 상속하여 서버 인증서를 올바르게 생성해야합니다. 4 : certutil -addstore Root path\to\cafile.pem

1
이것은 Mozilla Wiki 에서도 언급됩니다 .
Franklin Yu

2

이 인증서를 Windows 인증서 저장소뿐만 아니라 Firefox에도 배치하는 것을 고려 했습니까?

https://wiki.mozilla.org/CA:AddRootToFirefox 에는 몇 가지 옵션이 있습니다.

  1. 를 사용하여 인증서 데이터베이스를 직접 수정하십시오 certutil.
  2. 바이너리와 함께 자바 스크립트 파일을 배치하여 Firefox의 자동 구성 기능을 사용하여 인증서를 추가하십시오.

    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. 인증서 데이터베이스 파일을 직접 분배하십시오.
  4. 배포판의 인증서를 포함하여 설치용 Firefox 패키지.
  5. CCK2 를 사용하여 인증서를 추가하는 확장을 작성 하십시오 .

1

시스템 저장소 사용을 강제로 처리하는 좋은 방법은 없지만 멋진 해결 방법이 있습니다 (맞춤화 된 firefox 호환 저장소를 사용해야 함).

아래 스크립트는 로그인 / 로그 오프시 잘 작동합니다.

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
}

이와 같은 아이디어를 확장하고 Windows 스토어에서 신뢰할 수있는 인증서의 현재 목록을 가져 와서 wfaulk의 답변에서 참조 된 Mozilla certutil을 사용하여 cert8.db 파일을 즉시 생성 할 수 있습니다.
Ryan Bolger

1

무료 프로젝트 그룹 정책을 사용하여 파이어 폭스 루트 인증서를 관리 할 수있는 기능을 제공합니다. Firefox 데이터베이스에서 루트 인증서를 설치하거나 제거 할 수 있습니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.