상호 인증서 인증을 구현했으며 다음 단계를 성공적으로 완료했습니다.
- 루트 CA 생성(자체 서명)
- 서버 인증서를 생성하고 CA 개인 키로 서명
- 사용자 인증서를 생성하고 CA 개인 키로 서명
- server.crt를 브라우저의 "인증 기관"으로 가져오고 user.crt를 "인증서"로 가져옵니다.
다음 줄을 추가하여 ssl.conf를 구성합니다.
SSLCertificateKeyFile /home/safaa/rootca/certs/server.key SSLCertificateFile /home/safaa/rootca/certs/server.crt SSLCACertificateFile /home/safaa/rootca/certs/rootca.crt SSLVerifyDepth 10 SSLVerifyClient require
이제 플로차트에 중간 인증서를 추가했으므로 단계는 다음과 같습니다.
- 루트 CA 생성(자체 서명)
- 서버 CA를 생성하고 CA 개인 키로 서명하세요.
- 서버 인증서를 생성하고 서버 CA 개인 키로 서명하세요.
- 사용자 인증서를 생성하고 서버 CA 개인 키로 서명합니다.
- server.crt를 브라우저의 "인증 기관"으로 가져오고 user.crt를 "인증서"로 가져옵니다.
다음 줄을 추가하여 ssl.conf를 구성합니다.
SSLCertificateKeyFile /home/safaa/serverCA/certs/server.key SSLCertificateFile /home/safaa/serverCA/certs/server.crt SSLCACertificateFile /home/safaa/serverCA/certs/serverCA.crt SSLVerifyDepth 10 SSLVerifyClient require
이제 httpd 서비스를 다시 시작하려고 하면 service httpd restart라는 메시지가 나타납니다.
#sudo service httpd start
Starting httpd: [FAILED]
#sudo service httpd status
httpd is stopped
나는 성공하지 못한 채 줄에 주석을 달고 주석 해제를 시도했습니다.
SSLCertificateChainFile /home/safaa/rootca/certs/rootca.crt
SSLCACertificateFile /home/safaa/serverCA/certs/serverCA.crt
또한 내가 생성한 모든 인증서가 확인되었고 5개의 인증서가 모두 잘 확인되었습니다. 또한 rootca && serverCA 폴더의 소유자와 권한을 변경하여 ssl.conf와 동일하게 만들었습니다. ps: 저는 PHP용 bash를 실행하고 있습니다.
내가 놓친 게 무엇입니까? 누군가 SSL을 구성하는 대신 Linux에서 신뢰할 수 있는 저장소를 사용할 수 있다고 말했습니다. 이것이 가능합니까? 내 CA를 Linux에 추가하면 Verisign으로 표시됩니다! ?
답변1
다른 답변을 찾는 동안 제안된 이전 질문에 답변합니다.
일반적으로 자체 서명되지 않은 경우 서버 인증서를 브라우저에 추가할 필요가 없습니다. 이것이 신뢰 체인의 전체 목적입니다. 어디에서나 루트를 트러스트 앵커로 사용하지 않는 경우 중간 CA를 생성하는 수고를 겪을 필요가 없습니다.
나는 또한 당신이 이 지침의 목적이나 효과를 완전히 이해하지 못했다고 생각합니다. Apache 문서에서 확인해 보는 것이 좋습니다.여기. 가장 먼저 찾아보고 싶은 것은 다음과 같습니다.SSLCA 인증서 파일
내 원래 의견은 문서에 따르면SSL 인증서 파일중간 인증서도 동일한 파일에서 로드해야 합니다(중간 및 (선택 사항?) 루트 인증서를 server.crt에 추가하기만 하면 됩니다). 이를 통해 루트 CA의 인증서를 단일 서버 인증서가 아닌 신뢰할 수 있는 CA로 브라우저에 가져올 수 있습니다.
또한보십시오:이 답변상호 인증에 대한 추가 논의.