>

개념 증명 개발을 위해 로컬 컴퓨터 (OSX)에서 HAProxy 서버를 실행하고 있는데, 클라이언트와 함께 양방향 TLS를 생성 한 다음 해당 클라이언트를 웹 서버로 전달합니다.

인증 설정 및 이 자습서 는 본인의 인증서를 생성합니다. 내 haproxy 설정 파일은 다음과 같습니다 :

global
    log 127.0.0.1 local1 notice
frontend intranet
    mode http
    log-format %T\ %t\ %U
    log global
    bind *:2000 ssl crt both.pem ca-file myCA.pem verify required
    default_backend helpdesk
backend helpdesk
    mode http
    server helpdesk 127.0.0.1:9000 check

both.pem  루트 CA 및 인증서 자체를 생성하는 데 사용되는 개인 RSA 키와 myCA.pem  그냥 인증서입니다. 이것은 효과가 있지만 더 좋은 방법이 있으면 알려주십시오. 인증서를 두 번 포함시키는 것은 불필요하게 반복되는 것 같습니다.

openssl s_client -connect 127.0.0.1:2000 -cert ./derived.crt -key ./derived.key 를 사용하여 서버에 연결할 수 있습니다 . 파생 된 인증서와 키를 루트 인증서와 키로 바꾸어 연결할 수도 있습니다. 두 가지 방법으로, 성공적인 핸드 셰이크와 포트 9000의 웹 서버에 연결됩니다 (GET을 보내고 HTML을 다시받을 수 있음). 건강을 위해 핸드 셰이크에 실패한 관련없는 두 번째 루트 CA도 생성했습니다.

두 번째 자습서의 지침에 따라 파생 된 CA와 루트 CA를 모두 인증서에 추가하려고했습니다. 추가되고 신뢰할 수 있지만 Safari는 여전히 서버에 연결할 수 없습니다. 서버가 예기치 않게 연결을 끊었다 고 알려줍니다 (핸드 셰이크가 실패했거나 시도조차하지 않았다고 가정합니다). Chrome에서 빈 응답을 받았다고 말합니다.

실패했을 때 openssl이 얻는 것과 동일한 응답을 얻을 수 있는지 확인하기 위해 우편 배달부와 함께 시도 할 것입니다 (명시 적으로 악수가 실패했음을 알려줍니다). 그러나 뭔가 빠진 경우 여기에 묻고 싶었습니다. 여러분 중 하나가 아는 간단한. 도움을 주시면 감사하겠습니다.

업데이트 : 주소의 시작 부분에 https : //를 추가해야한다는 것을 알았습니다. 이제 브라우저는 사용할 인증서를 선택하라는 메시지를 표시합니다. 그러나 키 체인 목록에 나타나는 새 인증서가 아닌 시스템에서 기본적으로 사용 가능한 인증서 (직장 인증서)가 두 개만 표시됩니다.

업데이트 2 : 인증서에 대한 키 체인에는 서로 다른 두 섹션이 있습니다. 하나는 "인증서"라고합니다. 인증서를 가져올 때 인증서가있는 곳입니다. 다른 하나는 "내 인증서"라고하며 "인증서"의 하위 집합 인 것 같습니다. 여기에 내 맞춤 인증서를 추가 할 수있는 방법을 찾을 수 있을지 생각합니다.

  • 답변 # 1

    문제는 결국 Ask Different에서 찾은 게시물을 사용하여 해결되었습니다.

    openssl pkcs12 -export -clcerts -inkey private.key -in certificate.crt -out MyPKCS12.p12 -name "Your Name" 명령  키 체인에 추가 한 다음 서버에 연결할 때 Safari에서 선택할 수있는 인증서를 만드는 데 사용할 수 있습니다.

  • 이전 ssh - fontconfig에 사용자 정의 글꼴 추가
  • 다음 find - 둘 이상의 파일이있는 디렉토리