자체 서명된 인증서 사용 시 "x509: 알 수 없는 기관에서 서명된 인증서" 오류

자체 서명된 인증서 사용 시 "x509: 알 수 없는 기관에서 서명된 인증서" 오류

자체 서명된 인증서를 사용하여 보안 연결을 설정하고 싶습니다. openssl에 다음 conf 파일을 사용했습니다.

[req]
distinguished_name = req_distinguished_name
x509_extensions = v3_req
prompt = no

[req_distinguished_name]
countryName = EN
stateOrProvinceName = NY
localityName = New York
organizationName = MyOrg
organizationalUnitName = MyDept

[v3_req]
subjectKeyIdentifier = hash
authorityKeyIdentifier = keyid,issuer
basicConstraints = CA:TRUE
subjectAltName = @alt_names

[alt_names]
IP.1 = 10.0.4.70

실행 중인 인증서를 생성합니다.

openssl req -x509 -nodes -days 3650 -newkey rsa:2048 -keyout key.pem -out cert.pem -config openssl.cnf

그러나 내 서버가 이러한 인증서를 받으면

[WARNING] 2018/04/14 14:19:09 push_to_system.go:419: sending sample request failed:Post https://10.0.4.70:8090/content/: x509: certificate signed by unknown authority

이 문제를 방지하려면 인증서 생성을 어떻게 수정해야 합니까?

답변1

Sam의 대답은 작업에 도움이 될 수 있지만 프로덕션에는 좋은 아이디어가 아닙니다. 명확성을 위해 왜 이런 결과가 나오는지 설명하려고 노력하겠습니다.

인증서 서명을 위한 암호화 키 세트를 생성하는 것만으로는 충분하지 않습니다. 누구나 할 수 있는 일인데, 방금 해냈습니다. 이것이 바로 "신뢰할 수 있는 인증 기관"이 있는 이유입니다. 이들은 알려지고 신뢰할 수 있는 엔터티입니다. SSL 구현에는 해당 기관이 서명했다고 주장하는 인증서가 실제로 해당 기관에서 발행한 것이지 다른 사람이 아닌 다른 사람이 발행한 것이 아닌지 확인하기 위한 기관 및 공개 키 목록이 함께 제공됩니다.

따라서 자신의 인증서를 만들 때 모든 SSL 구현은 인증서가 실제로 사용자가 서명한 것임을 확인하지만 사용자가 신뢰할 수 있는지 전혀 모릅니다. 따라서 CA(인증 기관)를 신뢰할 수 있는 목록에 추가하지 않는 한, 그렇지 않으면 인증서를 거부합니다. SSL은 메시지를 암호화하는 데뿐만 아니라 대화 중인 사람이나 암호화된 서명을 하는 사람이 누구인지 확인하는 데에도 사용됩니다.

대량의 "건너뛰기", "우회" 또는 프로덕션 검증은 모든 사람의 인증서를 허용하므로 가장이나 중간자 공격에 취약해지기 때문에 좋은 생각이 아닙니다.

문제는 인증서 생성이 아니라 SSL 클라이언트 구성에 있습니다. 그것은 누구와 대화하고 있는지 모르기 때문에 연결을 거부한다는 것을 매우 명확하게 알려줍니다. (이거 좋다)

클라이언트에서 인증 기관을 신뢰할 수 있는 인증 기관으로 설정해야 합니다. 이는 설정에 따라 다르므로 도움을 받으려면 더 자세한 정보가 필요합니다. 문제를 해결하기 위한 또 다른 질문은 다음과 같습니다.

신뢰할 수 있는 목록에 자체 서명된 인증서 추가

컬과 함께 사용할 수 있도록 자체 서명된 인증서를 Ubuntu에 추가하세요.

이는 귀하에게만 적용되며, 제3자 고객과 대화할 경우 모두 동일한 이유로 귀하의 인증을 거부하고 동일한 조정을 수행해야 합니다. 이것이 바로 신뢰할 수 있는 CA가 애플리케이션/서버 등에 대한 서명 인증서 서비스를 판매하는 이유입니다. CA는 이미 목록에 있고 귀하의 신원을 확인하는 데 신뢰할 수 있기 때문입니다. 따라서 이 작업을 수행하기 위해 비용을 지불하면 결과 인증서는 모든 사람이 신뢰하게 됩니다. :)

인용하다"https://en.wikipedia.org/wiki/Certificate_authority

답변2

-tls-skip-verify오류를 우회할 수 있는 해결 방법이 있습니다 . 그러나 이는 일시적일 뿐입니다. 수정: openSSL 인스턴스를 다시 시작하여 문제를 해결해야 합니다. 새 인증서를 설정하거나 서버를 다시 시작하세요.

관련 정보