mkbundle
을 사용하여 기본 (Linux) 실행 파일로 번들로 묶은 Mono로 .NET 응용 프로그램을 구축했습니다. 이는 최종 사용자가 모노를 혼란에 빠뜨릴 필요가 없도록하기 위해서입니다.HttpListener와 함께 SSL을 mkbundle'd Mono 응용 프로그램과 함께 사용하는 방법
응용 프로그램은 HttpListener
을 사용하는 ServiceStack을 사용합니다. SSL 지원 HTTP 끝점을 통해 노출되도록 웹 서비스가 필요합니다.
일반적으로 구성 중에 httpcfg -add -port 1234 -p12 MyCert.pfx -pwd "MyPass"
과 같은 것을 실행하면 (이 모든 것은 인증서를 특정 경로로 복사하는 것이므로) HttpListener
은 자동으로 인증서를 포트에 바인딩합니다.
따라서 HttpListener
은 런타임에 특정 경로의 인증서를로드합니다.
경로는 하드 코딩되어 있습니까? 아니면 최종 사용자가 Mono를 설치하지 않기 때문에 다른 위치에서 인증서를 사용하도록 말할 수있는 방법이 있습니까?
Mono는'HttpListener'에서로드하는 인증서의 유효성 검사를 수행합니까? 즉, 인증서 저장소에서 발급자의 인증서를 찾을 것으로 예상됩니까? 인증서 저장소에 대한 경로도 하드 코딩되어 있습니까? – Cocowalla
@Cocowalla 답변을 업데이트했습니다. 'Mozroots' 도구의 링크 된 구현은 응용 프로그램 구성 단계에서 CA 경로 인증서를 시스템에 추가 할 수있게합니다. 'X509StoreManager'는 인증서 저장소를 관리하는 데 사용되므로 경로에 직접 액세스하면 안됩니다. 희망이 도움이 – Scott
'X509StoreManager' (https://github.com/mono/mono/blob/a31c107f59298053e4ff17fd09b2fa617b75c1ba/mcs/class/Mono.Security/Mono.Security.X509/X509StoreManager.cs)를 확인했습니다. 경로는 하드 코딩됩니다. mkbundle은 사용자가 Mono가 이미 설치되어있는 것을 필요로하지 않는다는 것을 의미합니다 ... 그러나 하드 코딩 된 장소에 많은 경로가 필요해 보입니다 :/ – Cocowalla