Membuat dan mengekspor sertifikat - Linux - OpenSSL

Koneksi titik-ke-situs (P2S) VPN Gateway dapat dikonfigurasi untuk menggunakan autentikasi sertifikat. Kunci publik sertifikat akar diunggah ke Azure dan setiap klien VPN harus memiliki file sertifikat yang sesuai yang diinstal secara lokal untuk menyambungkan. Artikel ini membantu Anda membuat sertifikat akar yang ditandatangani sendiri dan menghasilkan sertifikat klien menggunakan OpenSSL. Untuk informasi selengkapnya, lihat Konfigurasi titik-ke-situs - autentikasi sertifikat.

Prasyarat

Untuk menggunakan artikel ini, Anda harus memiliki komputer yang menjalankan OpenSSL.

Sertifikat akar yang ditandatangani sendiri

Bagian ini membantu Anda membuat sertifikat akar yang ditandatangani sendiri. Setelah membuat sertifikat, Anda mengekspor file data kunci publik sertifikat akar.

  1. Contoh berikut membantu Anda membuat sertifikat akar yang ditandatangani sendiri.

    openssl genrsa -out caKey.pem 2048
    openssl req -x509 -new -nodes -key caKey.pem -subj "/CN=VPN CA" -days 3650 -out caCert.pem
    
  2. Cetak data publik sertifikat akar yang ditandatangani sendiri dalam format base64. Ini adalah format yang didukung oleh Azure. Unggah sertifikat ini ke Azure sebagai bagian dari langkah-langkah konfigurasi P2S Anda.

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

Sertifikat klien

Di bagian ini, Anda membuat sertifikat pengguna (sertifikat klien). File sertifikat dihasilkan di direktori lokal tempat Anda menjalankan perintah. Anda dapat menggunakan sertifikat klien yang sama di setiap komputer klien, atau membuat sertifikat yang khusus untuk setiap klien. Sangat penting adalah bahwa sertifikat klien ditandatangani oleh sertifikat akar.

  1. Untuk membuat sertifikat klien, gunakan contoh berikut.

    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. Untuk memverifikasi sertifikat klien, gunakan contoh berikut.

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

Langkah berikutnya

Untuk melanjutkan langkah-langkah konfigurasi, lihat Autentikasi sertifikat titik-ke-situs.