인증서 생성 및 내보내기 - Linux - OpenSSL

인증서 인증을 사용하도록 VPN Gateway P2S(지점 및 사이트) 연결을 구성할 수 있습니다. 루트 인증서 공개 키가 Azure에 업로드되고 각 VPN 클라이언트에 연결하려면 적절한 인증서 파일이 로컬로 설치되어 있어야 합니다. 이 문서는 자체 서명된 루트 인증서를 만들고 OpenSSL을 사용하여 클라이언트 인증서를 생성하는 데 도움이 됩니다. 자세한 내용은 지점 및 사이트 간 구성 - 인증서 인증을 참조하세요.

필수 조건

이 문서를 사용하려면 OpenSSL을 실행하는 컴퓨터가 있어야 합니다.

자체 서명된 루트 인증서

이 섹션에서는 자체 서명된 루트 인증서를 생성하는 데 도움이 됩니다. 인증서를 생성한 후 루트 인증서 공개 키 데이터 파일을 내보냅니다.

  1. 다음 예제에서는 자체 서명된 루트 인증서를 생성하는 데 도움이 됩니다.

    openssl genrsa -out caKey.pem 2048
    openssl req -x509 -new -nodes -key caKey.pem -subj "/CN=VPN CA" -days 3650 -out caCert.pem
    
  2. 자체 서명된 루트 인증서 공용 데이터를 base64 형식으로 인쇄합니다. Azure에서 지원하는 형식입니다. P2S 구성 단계의 일부로 이 인증서를 Azure에 업로드합니다.

    openssl x509 -in caCert.pem -outform der | base64 -w0 && echo
    

클라이언트 인증서

이 섹션에서는 사용자 인증서(클라이언트 인증서)를 생성합니다. 인증서 파일은 명령을 실행하는 로컬 디렉터리에 생성됩니다. 각 클라이언트 컴퓨터에서 동일한 클라이언트 인증서를 사용하거나 각 클라이언트와 관련된 인증서를 생성할 수 있습니다. 클라이언트 인증서가 루트 인증서로 서명되는 것이 중요합니다.

  1. 클라이언트 인증서를 생성하려면 다음 예제를 사용합니다.

    export PASSWORD="password"
    export USERNAME=$(hostnamectl --static)
    
    # Generate a private key
    openssl genrsa -out "${USERNAME}Key.pem" 2048
    
    # Generate a CSR (Certificate Sign Request)
    openssl req -new -key "${USERNAME}Key.pem" -out "${USERNAME}Req.pem" -subj "/CN=${USERNAME}"
    
    # Sign the CSR using the CA certificate and CA key
    openssl x509 -req -days 365 -in "${USERNAME}Req.pem" -CA caCert.pem -CAkey caKey.pem -CAcreateserial -out "${USERNAME}Cert.pem" -extfile <(echo -e "subjectAltName=DNS:${USERNAME}\nextendedKeyUsage=clientAuth")
    
  2. 클라이언트 인증서를 확인하려면 다음 예제를 사용합니다.

    openssl verify -CAfile caCert.pem caCert.pem "${USERNAME}Cert.pem"
    

다음 단계

구성 단계를 계속하려면 지점 및 사이트 간의 인증서 인증을 참조하세요.