패키지를 설치하지 않고 데비안에 사용자 정의 CA 인증서를 설치할 수 있습니까 ca-certificate
?
저는 각 릴리스의 수명주기를 벗어나 서버를 실행하는 경향이 있으며 몇 년이 지나면 항상 문제에 직면하는 것 같습니다. cURL이 서버, PHP openssl.cafile
등 curl.cainfo
의 유효성을 확인할 수 없는 것과 같은 간단한 문제입니다 . 방해가 되는 것은 아니지만 짜증나는 일입니다.
지금 Buster를 설치하고 있는데 이번에는 처음부터 문제가 발생하지 않기를 바랍니다.
이상적으로는 다운로드하고 싶습니다.cacert.pem컬.se(Mozilla 소스 코드)에서 디렉터리에 넣고 운영 체제와 이를 필요로 하는 모든 소프트웨어에 이를 사용하도록 지시합니다. 이렇게 하면 만료되면 컬.se 또는 Mozilla 소스에서 최신 버전을 다시 다운로드할 수 있습니다.
답변1
update-ca-certificates
실제로 쉘 스크립트입니다. 이 내용을 읽고 필요에 맞게 일부를 수정할 수 있습니다.
간단히 말해서, update-ca-certificates
인증서를 추가하면 /etc/ssl/certs/
PEM 형식의 인증서 파일에 대한 심볼릭 링크가 생성됩니다. update-ca-certificates
CA 인증서는 접미사가 있는 PEM 형식 파일로 되어 있어야 하며 *.crt
링크 이름은 해당 접미사를 *.pem
: 로 변경하여 /etc/ssl/certs/<somename>.pem
로 연결 됩니다 /elsewhere/<somename>.crt
.
OpenSSL에서는 신뢰할 수 있는 CA 인증서가 포함된 디렉터리에 해시를 통해 액세스할 수 있어야 하므로 해당 /etc/ssl/certs/
디렉터리 내에 또 다른 기호 링크가 생성됩니다 <certificate hash>.0 -> <somename>.pem
. 이는 <certificate hash>
다음을 통해 수동으로 계산할 수 있습니다.
openssl x509 -in <certificate PEM file> -noout -hash
다른 인증서에 동일한 해시가 있는 경우 섹션은 고유한 이름을 찾을 때까지 으로 증가한 다음 으로 .0
증가합니다 . 이 해싱은 보안 메커니즘이 아닙니다. 단순히 OpenSSL이 인증서 유효성을 검사할 때 해시를 통해 필요한 CA 인증서를 빠르게 찾을 수 있도록 허용하는 것뿐입니다..1
.2
또는 cd /etc/ssl/certs; openssl rehash .
디렉터리의 모든 인증서에 대해 해시된 기호 링크를 만드는 데 사용할 수 있습니다.
/etc/ssl/certificates/ca-certificates.crt
신뢰할 수 있는 CA 인증서 목록만 단일 파일로 허용하는 프로그램의 경우 새 인증서 PEM 파일의 내용도 추가됩니다. PEM 형식의 인증서에 후행 줄 바꿈 문자가 누락된 경우 스크립트는 인증서를 ca-certificates.crt
.
스크립트 update-ca-certificates
는 /etc/ca-certificates/update.d/
.
Java 패키지 버전이 설치되어 있는 경우 OpenSSL CA와 정확히 동일한 인증서를 포함하도록 인증서 디렉터리 또는 파일 에 있는 Java 키 저장소 파일도 업데이트하는 Java 패키지에 의해 제거된 스크립트가 .dpkg
있을 가능성이 높습니다./etc/ca-certificates/update.d/jks-keystore
/etc/ssl/certs/java/cacerts
/etc/ssl/certs
/etc/ssl/certs/ca-certificates.crt
편집됨
답변2
my_own_ca.crt
에게 복사/usr/local/share/ca-certificates
- 스크립트 실행
update-ca-certificates
update-ca-certificates
필요한 simlink를 생성하고/etc/ssl/certs/ca-certificates.crt 업데이트문서. Linux 유틸리티는 기본적으로 이 파일을 CA 파일로 wget
사용합니다 .curl
또는 CA 파일을 지정하거나 인증서 확인을 비활성화하는 스위치를 찾으십시오. wget의 경우 다음과 같습니다.
wget --no-check-certificate
- CA 검사를 비활성화합니다.wget --ca-certificate=file
- 파일을 인증 기관("CA") 번들과 함께 파일로 사용하여 피어를 인증합니다. 인증서는 PEM 형식이어야 합니다.
예
crt
접미사를 사용하여 자신의 CA를 복사하세요./usr/local/share/ca-certificates
/usr/local/share/ca-certificates# ls -alFh
celkem 16K
drwxrwsr-x 2 root staff 4,0K úno 5 13:02 ./
drwxrwsr-x 7 root staff 4,0K kvě 7 2014 ../
-rw-r--r-- 1 root staff 1,5K úno 5 13:02 thawte-Primary-Root-CA-G3.crt
-rw-r--r-- 1 root staff 1,7K úno 5 13:01 thawte-SHA256-ssl-ca.crt
달리기update-ca-certificates
/usr/local/share/ca-certificates# update-ca-certificates
Updating certificates in /etc/ssl/certs... WARNING: Skipping duplicate certificate thawte-Primary-Root-CA-G3.pem
WARNING: Skipping duplicate certificate thawte-Primary-Root-CA-G3.pem
WARNING: Skipping duplicate certificate thawte-primary-root.pem
WARNING: Skipping duplicate certificate thawte-primary-root.pem
2 added, 0 removed; done.
Running hooks in /etc/ca-certificates/update.d....done.
확인하다:
/etc/ssl/certs# ls -alFh | grep local
lrwxrwxrwx 1 root root 62 úno 5 13:03 thawte-Primary-Root-CA-G3.pem -> /usr/local/share/ca-certificates/thawte-Primary-Root-CA-G3.crt
lrwxrwxrwx 1 root root 57 úno 5 13:03 thawte-SHA256-ssl-ca.pem -> /usr/local/share/ca-certificates/thawte-SHA256-ssl-ca.crt
/etc/ssl/certs# openssl crl2pkcs7 -nocrl -certfile /etc/ssl/certs/ca-certificates.crt | openssl pkcs7 -print_certs -noout
subject=/CN=ACEDICOM Root/OU=PKI/O=EDICOM/C=ES
issuer=/CN=ACEDICOM Root/OU=PKI/O=EDICOM/C=ES
subject=/C=CO/O=Sociedad Cameral de Certificaci\xC3\xB3n Digital - Certic\xC3\xA1mara S.A./CN=AC Ra\xC3\xADz Certic\xC3\xA1mara S.A.
issuer=/C=CO/O=Sociedad Cameral de Certificaci\xC3\xB3n Digital - Certic\xC3\xA1mara S.A./CN=AC Ra\xC3\xADz Certic\xC3\xA1mara S.A.
subject=/C=IT/L=Milan/O=Actalis S.p.A./03358520967/CN=Actalis Authentication Root CA
issuer=/C=IT/L=Milan/O=Actalis S.p.A./03358520967/CN=Actalis Authentication Root CA
subject=/C=SE/O=AddTrust AB/OU=AddTrust External TTP Network/CN=AddTrust External CA Root
issuer=/C=SE/O=AddTrust AB/OU=AddTrust External TTP Network/CN=AddTrust External CA Root
...
Find your CA