dotnet dev-certs

이 문서의 적용 대상: ✔️ .NET Core 3.1 SDK 이상 버전

이름

dotnet dev-certs - 개발 시 HTTPS 사용을 사용하도록 설정하기 위해 자체 서명된 인증서를 생성합니다.

개요

dotnet dev-certs https 
  [-c|--check] [--clean] [-ep|--export-path <PATH>]
  [--format] [-i|--import] [-np|--no-password]
  [-p|--password] [-q|--quiet] [-t|--trust]
  [-v|--verbose] [--version]

dotnet dev-certs https -h|--help

설명

dotnet dev-certs 명령은 로컬 웹앱 개발에서 HTTPS 사용을 사용하도록 설정하기 위해 자체 서명된 인증서를 관리합니다. 주요 함수는 다음과 같습니다.

  • 개발 중에 HTTPS 엔드포인트에 사용할 인증서를 생성합니다.
  • 로컬 컴퓨터에서 생성된 인증서를 신뢰합니다.
  • 로컬 컴퓨터에서 생성된 인증서를 제거합니다.
  • 다른 도구에서 사용할 수 있도록 다양한 형식으로 인증서를 내보냅니다.
  • 도구로 생성된 기존 인증서를 로컬 컴퓨터로 가져옵니다.

명령

  • https

    dotnet dev-certs에는 명령이 하나만 있습니다. https. 옵션이 없는 dotnet dev-certs https 명령은 개발 인증서가 컴퓨터의 현재 사용자 인증서 저장소에 있는지 확인합니다. 명령이 개발 인증서를 찾으면 다음 예와 같은 메시지를 표시합니다.

    A valid HTTPS certificate is already present.
    

    명령이 개발 인증서를 찾지 못하면 현재 사용자의 인증서 저장소(CurrentUser 위치에 My라는 저장소)에 개발 인증서를 만듭니다. 인증서의 실제 위치는 언제든지 변경될 수 있는 .NET 런타임의 구현 세부 사항입니다. .NET 7.0의 macOS에서 인증서는 사용자 키 체인에 PFX 파일(~/.aspnet/https-aspnetcore-localhost-<Thumbprint[0..5]>.pfx)로 저장됩니다.

    인증서를 만든 후 명령은 다음 예와 같은 메시지를 표시합니다.

    The HTTPS developer certificate was generated successfully.
    

    기본적으로 새로 만들어진 인증서는 신뢰할 수 없습니다. 인증서를 신뢰하려면 --trust 옵션을 사용합니다.

    다른 도구와 함께 사용할 수 있는 파일을 만들려면 --export-path 옵션을 사용합니다.

옵션

  • -c|--check

    개발 인증서가 있는지 확인하지만 어떤 작업도 수행하지 않습니다. 인증서가 유효할 뿐만 아니라 신뢰할 수 있는지 확인하려면 이 옵션을 --trust 옵션과 함께 사용합니다.

  • --clean

    .NET 인증서 저장소 API를 사용하여 인증서 저장소에서 모든 HTTPS 개발 인증서를 제거합니다. --export-path 옵션을 사용하여 만들어진 실제 파일은 제거하지 않습니다. .NET 7.0의 macOS에서 dotnet dev-certs 명령은 디스크의 경로에 인증서를 만들고 정리 작업은 해당 인증서 파일을 제거합니다.

    인증서 저장소에 인증서가 하나 이상 있는 경우 명령은 다음 예와 같은 메시지를 표시합니다.

    Cleaning HTTPS development certificates
    from the machine.
    A prompt might get displayed to confirm
    the removal of some of the certificates.
    
    HTTPS development certificates
    successfully removed from the machine.
    

  • -ep|--export-path <PATH>

    다른 도구에서 사용할 수 있도록 인증서를 파일로 내보냅니다. 파일 이름을 포함하여 내보낸 인증서 파일의 전체 경로를 지정합니다. 만들어지는 인증서 파일 형식은 --export-path와 함께 사용되는 옵션에 따라 다릅니다.

    옵션 내보낸 항목
    --export-path PFX 파일인 인증서의 공용 부분.
    --export-path --format PEM PEM 형식의 인증서 공용 부분. 별도의 .key 파일이 만들어지지 않습니다.
    --export-path --password PFX 파일인 인증서의 공용 및 프라이빗 부분.
    --export-path --password --format PEM PEM 형식의 파일 쌍으로 구성된 인증서의 공용 및 프라이빗 부분입니다. 키 파일은 .key 확장자를 가지며 지정된 암호로 보호됩니다.
    --export-path --no-password --format PEM PEM 형식의 파일 쌍으로 구성된 인증서의 공용 및 프라이빗 부분입니다. 키 파일은 .key 확장자를 가지며 일반 텍스트로 내보내집니다. --no-password 옵션은 내부 테스트용으로만 사용됩니다.
    • --format

    --export-path와 함께 사용하면 내보낸 인증서 파일의 형식을 지정합니다. 유효한 값은 PFXPEM이며 대/소문자를 구분하지 않습니다. 기본값은 PFX입니다.

    파일 형식은 파일 이름 확장명과 독립적입니다. 예를 들어, --format pfx--export-path ./cert.pem을 지정하면 PFX 형식의 cert.pem이라는 파일이 생성됩니다.

    --password, --no-password와 함께 사용하거나 해당 옵션 중 하나 없이 사용할 때 이 옵션의 효과에 대한 자세한 내용은 이 문서 앞부분의 --export-path를 참조하세요.

  • -i|--import <PATH>

    제공된 HTTPS 개발 인증서를 로컬 컴퓨터로 가져옵니다. 기존 HTTPS 개발자 인증서를 지우는 --clean 옵션도 지정해야 합니다.

    PATH는 PFX 인증서 파일의 경로를 지정합니다. --password 옵션을 사용하여 암호를 제공합니다.

  • -np|--no-password

    인증서를 PEM 형식 파일로 내보낼 때 키에 대한 암호를 사용하지 않습니다. 키 파일은 일반 텍스트로 내보내집니다. 이 옵션은 PFX 파일에는 적용되지 않으며 내부 테스트용으로만 사용됩니다.

  • -p|--password

    사용할 암호를 지정합니다.

    • 개발 인증서를 PFX 또는 PEM 파일로 내보낼 때.
    • PFX 파일을 가져올 때.

    --format PEM을 사용하여 내보낼 때 인증서의 공용 부분과 프라이빗 부분이 PEM 형식의 파일 쌍으로 내보내집니다. 키 파일은 .key 확장자를 가지며 지정된 암호로 보호됩니다. --export-path 옵션에 지정된 파일 이름 외에도 이 명령은 이름은 동일하지만 확장자가 .key인 다른 파일을 동일한 디렉터리에 만듭니다. 예를 들어, 다음 명령은 /home/user 디렉터리에 localhost.pem이라는 파일과 localhost.key라는 파일을 생성합니다.

    dotnet dev-certs https --format pem -ep /home/user/localhost.pem -p $CREDENTIAL_PLACEHOLDER$
    

    이 예에서 $CREDENTIAL_PLACEHOLDER$는 암호를 나타냅니다.

  • -q|--quiet

    경고 및 오류만 표시합니다.

  • -t|--trust

    로컬 컴퓨터의 인증서를 신뢰합니다.

    이 옵션을 지정하지 않으면 인증서가 인증서 저장소에 추가되지만 신뢰할 수 있는 목록에는 추가되지 않습니다.

    --check 옵션과 결합하면 인증서가 신뢰할 수 있는지 유효성을 검사합니다.

  • -v|--verbose

    디버그 정보를 표시합니다.

예제

  • 개발 인증서가 있는지 확인하고, 아직 없으면 기본 인증서 저장소에 새로 만듭니다. 그러나 인증서를 신뢰하지 마세요.

    dotnet dev-certs https
    
  • 로컬 컴퓨터에 이미 존재하는 개발 인증서를 제거합니다.

    dotnet dev-certs https --clean
    
  • PFX 파일을 가져옵니다.

    dotnet dev-certs https --clean --import ./certificate.pfx -p $CREDENTIAL_PLACEHOLDER$
    

    앞의 예에서 $CREDENTIAL_PLACEHOLDER$는 암호를 나타냅니다.

  • 로컬 컴퓨터에 신뢰할 수 있는 개발 인증서가 있는지 확인합니다.

    dotnet dev-certs https --check --trust
    
  • 인증서를 만들고 신뢰한 후 PFX 파일로 내보냅니다.

    dotnet dev-certs https -ep ./certificate.pfx -p $CREDENTIAL_PLACEHOLDER$ --trust
    
  • 인증서를 만들고 신뢰한 후 PEM 파일로 내보냅니다.

    dotnet dev-certs https -ep ./certificate.crt --trust --format PEM
    
  • 인증서를 만들고 신뢰한 후 프라이빗 키가 포함된 PEM 파일로 내보냅니다.

    dotnet dev-certs https -ep ./certificate.crt -p $CREDENTIAL_PLACEHOLDER$ --trust --format PEM
    

참고 항목