ASP에서 무료 인증을 받은 SSL 인증서가 있습니다.NET 5 붉은 매 응용 프로그램

6166 단어 kestrelnet5ssltls
이미지 parskylarvisiondePixabay
제가 진행하고 있는 작은 프로젝트의 일부로서 ASP를 진행하고 싶습니다.NET 네트워크 API는 우리 집 서버에 있습니다.이 API의 목적은 Angular 클라이언트 응용 프로그램에 푸시 알림을 보내는 것입니다.이것은 내가 반드시 나의 사이트를 위해 SSL 통신을 설정해야 하는 주요 원인이다. 서비스 직원은 알림을 전송할 수 있도록 TLS가 유효한 인증서를 사용하여 통신을 보호해야 한다.그러나 이것은 본문의 주제가 아니다.여기서 인증서를 작성하여 Kestrel에 로드하는 방법에 대해 중점적으로 설명합니다.
개발 단계에서 나는 자체 서명 인증서를 사용했지만, 지금은 그것을 배치하고 싶다. 인증 기관에서 인증한 진정한 인증서가 필요하다.이것은 상업 프로젝트가 아니라 개인 프로젝트이기 때문에, 나는 그것을 완전히 무료로 하고 싶다.그래서 나는 Let's Encrypt로 인증서를 생성하기로 결정했다.최근까지, ASP.Net core는 지원만 제공합니다.PFX 파일이 아닙니다.PEM 파일은 Let's Encrypt에서 사용할 수 있습니다.하지만제5망유rectified the situation in version 5.0.0-preview8.

I could use a reverse-proxy like nginx or haproxy and let it handle the SSL stuff, but I wanted to keep it as simple as possible, so I decided to directly serve it using Kestrel.


선결 조건

  • 당신이 가지고 있는 도메인 이름입니다.개인적으로, 나는 무료 하나를 얻기 위해 Duck DNS 등록했다.
  • ASP.NET 웹 사이트가 도메인에 바인딩됨
  • bash, 가장 좋은 것은 리눅스;)그러나 Windows
  • 도 가능합니다.

    Most of Internet providers allow you to configure NAT/PAT and DynDNS, so it should not be a problem to bind your DNS to an open port on a machine in your local network.


    무료 증서를 받다


    대부분의 인증 기관은 그들의 증서를 판매할 뿐만 아니라 가격도 비싸다.등록하는 과정에서 사람이 하는 검증을 자주 물어보기 때문이다.Let's Encrypt명이 구조해 주기를 바란다.Encrypt도 인증서 발급 기구이지만 비영리 조직이다.그것의 목표는 create a more secure and privacy-respecting Web이다.
    네가 해야 할 첫 번째 일은 설치Certbot다.너의 시스템에 따르면 이 점을 해낼 수 있는 많은 방법이 있기 때문에 나는 상세하게 소개하지 않을 것이다.추천하는 방법은 snap을 사용하는 것입니다.나는 단지 간단한 결정을 했을 뿐이다
    $ sudo apt-get install certbot
    
    그것은 성공했다.
    현재 certbot이 설치되어 있습니다. 새 인증서와 개인 키를 만들 수 있습니다.마찬가지로 서버에 따라 이를 실현할 수 있는 방법이 많습니다.certbot은 인증서가 만료되기 전에 인증서를 자동으로 갱신하는 것으로 설정할 수 있습니다.Personnaly 수동 방법을 사용하고 나중에 autorenew를 구성합니다.
    $ sudo certbot certonly --manual
    
    Certbot은 먼저 도메인 이름이 무엇인지 물어보고 컨트롤을 했다는 것을 증명해 달라고 한다.
    Create a file containing just this data:
    
    eZ4dZ4xUrIn7Fkyuy0Vd9giY5FoEPnm5cfGQXs_EDy0.gj7wCMjUoSpRopo7wvqqw5spi23jZdjLjtlCa00Cf2c
    
    And make it available on your web server at this URL:
    
    http://ssldemo.dev.to/.well-known/acme-challenge/eZ4dZ4xUrIn7Fkyuy0Vd9giY5FoEPnm5cfGQXs_EDy0
    
    웹 사이트를 수정하여 요청한 URL에서 파일을 사용할 수 있도록 한 다음 Enter 키를 누릅니다.Certbot은 파일을 다운로드하고 요청한 내용과 일치하는지 확인합니다.그리고 도메인 이름과 인증서에 서명할 개인 키와 관련된 새 인증서를 발표합니다.파일
    /etc/letsencrypt/live/ssldemo.dev.to/fullchain.pem
    /etc/letsencrypt/live/ssldemo.dev.to/privkey.pem
    
    이 두 파일을 위탁 관리 사이트의 기기의 안전한 위치로 복사하고 웹 응용 프로그램 이외에 접근할 수 있는 사람이 없도록 확보한다.

    붉은 매 형태


    웹 사이트 응용 프로그램이 최소한의 목표를 가지고 있는지 확인하세요.NET 5.0.네 핸드폰에 있을 거야 <TargetFramework>net5.0</TargetFramework>.csproj 파일입니다.
    당신은 지금 붉은 매에게 당신의 증서를 어떻게 탑재하는지 지도해야 합니다.응용 프로그램 설정을 엽니다.json 파일 및 Kestrel 섹션 추가:
      "Kestrel": {
        "Certificates": {
          "Default": {
            "Path": "path/to/fullchain.pem",
            "KeyPath": "path/to/privkey.pem"
          }
        }
      }
    

    You could also use environment variables if you prefer


    이렇게!이 방법ConfigureWebHostDefaults은 Kestrel을 웹 서버로 사용하기 때문에 Kestrel 부분을 사용하여 자신을 설정합니다.프로그램 설정을 불러오는 것만 확인하십시오.시작할 때 json (기본적으로 사용 CreateDefaultBuilder) 을 사용합니다.따라서 서버는 제공된 SSL 인증서와 개인 키를 로드하고 사용합니다.만약 ConfigureWebHostDefaults 을 사용하지 않았다면, 웹 Builder UseKestrel 에 문제가 없는지 확인하십시오.
    이제 HTTPS를 통해 웹 API를 요청하면 웹 브라우저의 주소 표시줄에 유효한 인증서가 표시됩니다.

    결론


    내가 이 글을 쓴 것은 PEM SSL 인증서를 불러올 수 있도록 Kestrel을 설정하는 방법에 관한 많은 문서를 찾지 못했기 때문이다.이것은 나의 첫 번째 문장이다. 나는 네가 그것이 재미있고 심지어 유용하다고 느낄 수 있기를 바란다.
    관심 있으면 현재 프로젝트의 소스 코드를 찾을 수 있습니다. Kestrel에 PEM SSL 인증서를 불러와야 합니다.

  • https://github.com/bNobo/wind-forecast-api: 네트워크 API

  • https://github.com/bNobo/wind-forecast-website: 각도 클라이언트
  • 좋은 웹페이지 즐겨찾기