HTTPS 인증서 고민

이번에 혼자서 만들어야되는 프로젝트가 생겼습니다.
대략적인 구성은 아래처럼 간단한 구조입니다.

Winforms App → ASP.Net Core WebAPI → MSSQL

웹개발이 처음이라 인증서 개념이 명확하지 않아 질문을 드리게되었습니다.
구글에서 검색해봐도 원론적인 정의만 나올뿐, 실제 ASP.NET Core에서 적용하는 방법은 없더군요.
세세한 답변이 힘들면 관련 키워드라도 부탁드립니다.

1.http로만 사용해도되는 환경이라면 webapi 프로젝트를 만들때 http만 사용하게 설정해서 사용하면 될까요?

2.만약 https를 꼭 적용해야되는 상황일 경우,
개발용 localhost 인증서는 언제까지 사용 가능한가요?
개발용 localhost 인증서로 운영 환경에서 사용 가능할까요?
개발용 localhost 인증서는 기간이 끝나면 통신이 안되나요?
운영에 배포할때, 회사에서 인증서를 제공해달라고 요청해야되나요?
회사에서 받은 인증서는 어디다 어떻게 적용(설치)해야하나요?

웹개발쪽은 처음이라도 어떻게든 코딩을하면 될거 같은데, 환경적인 요인 때문에 걱정이 크네요.
조언 좀 부탁드립니다.
감사합니다.

2개의 좋아요

HTTPS용으로 사용하는 것이라면 무료로 사용할 수 있습니다.

및 관련 키워드로 검색하시면 원하시는 정보를 찾을 수 있어요

4개의 좋아요

Locahost 인증서, 개발용 인증서는 서버 적용 불가입니다.
Winform앱이 접근해야 하는 API 서버가 IP 기반 접근이 가능하고 외부 접근이 안되는 경우라면 http로 인증서 없이 하시는게 나을거라고 봅니다.
도메인 기반이고 외부 접근이 가능한 서버라면 https로 접근하며 인증서를 사용하셔야 할 것이고 개발용 인증서가 아닌 도메인에 대한 인증된 기관의 인증서를 구매해서 사용하셔야 할 것입니다.
(아마 API 서버의 2중화를 생각하시거나 확장을 고민하신다면 이 부분으로 가시는 것도 좋을 것 같습니다.)
인증된 기관의 인증서를 회피하는 방법도 있겠지만 권장되지는 않겠네요.

3개의 좋아요

@dimohy 님이 올려주신 LettuceEncrypt도 좋네요.

아래 내용은 nginx proxy 기능을 이용한 것 입니다.
LettuceEncrypt 페이지 하단 부분에 나와 있는 ASP.NET Core with Kestrel Behind a Reverse Proxy입니다.

클라이언트 : 윈폼

클라이언트에서 외부에 노출된 서버까지 : https통신이 필요함. (통신보안을 위해서)

서버간 : webapi 서버와 db서버는 ip인증등으로 처리되거나 private하게 처리되면 될것으로 생각됩니다.

클라이언트에서 서버구간에 https를 적용시키는 방법은 여러가지 있습니다. letsencrypt를 통해서 자동갱신되는 무료 ssl인증서를 이용하는 방법이 있습니다.

이걸 자동으로 관리해주는 여러가지 방법들이 나와있는데 nginx proxy manager 컨테이너를 생성해서 처리하는 방법입니다. webapi도 mssql도 컨테이너화해서 사용하면 되겠습니다.

3개의 좋아요
  1. http만 사용해도 되는 환경이면 굳이 https를 사용할 필요는 없습니다. https로 하나 올리기 시작하면 연관된 서버나 웹서버도 같이 https로 올려주는 게 좋거든요.

  2. 꼭 적용해야 한다면, 개발용으로는 굳이 인증서 발급해서 할 필요는 없어 보입니다. IIS 개발용 인증서로 개발하다가 qa나 운영 서버에 배포할 때 적용하면 될 거 같네요.
    IIS를 사용하신다면 IIS 관리자에서 인증서 등록하고 사용할 수 있고 다른 웹서버를 사용하신다면 그거에 맞게 사용하시면 될 거 같습니다.

3개의 좋아요