Sertifikat klien yang valid harus menunjukkan rantai kepercayaan kembali ke anchor kepercayaan di penyimpanan kepercayaan. Halaman ini memberikan petunjuk untuk membuat rantai kepercayaan Anda sendiri menggunakan sertifikat root CA (otoritas sertifikat) pribadi, yang berada di bawah kendali Anda. Dalam penyiapan ini, CA pribadi dibuat menggunakan Certificate Authority Service.
Setelah mendapatkan sertifikat root CA pribadi, dokumen ini menguraikan proses untuk mengupload sertifikat ke trust store resource Certificate Manager TrustConfig
. Setelah itu, konfigurasi kepercayaan ditautkan ke resource Autentikasi Klien (ServerTLSPolicy
), lalu resource Autentikasi Klien dilampirkan ke resource proxy HTTPS target load balancer.
Sebelum memulai
- Tinjau Ringkasan TLS bersama.
- Tinjau panduan untuk Mengelola konfigurasi tepercaya.
Instal Google Cloud CLI. Untuk mengetahui ringkasan lengkap alat ini, lihat ringkasan gcloud CLI. Anda dapat menemukan perintah terkait load balancing di referensi API dan gcloud CLI.
Jika Anda belum pernah menjalankan gcloud CLI sebelumnya, jalankan
gcloud init
terlebih dahulu untuk melakukan autentikasi.Tinjau panduan untuk membuat kumpulan CA.
Jika Anda menggunakan Load Balancer Aplikasi eksternal global atau Load Balancer Aplikasi klasik, pastikan Anda telah menyiapkan load balancer dengan salah satu backend yang didukung berikut:
- Backend grup instance VM
- Bucket Cloud Storage (Hanya didukung jika ada minimal satu layanan backend yang juga terhubung ke load balancer, selain bucket backend)
- Cloud Run, App Engine, atau Cloud Run functions
- Konektivitas hybrid
Jika Anda menggunakan Load Balancer Aplikasi eksternal regional, Load Balancer Aplikasi internal lintas region, atau Load Balancer Aplikasi internal regional, pastikan Anda telah menyiapkan load balancer dengan salah satu backend yang didukung berikut:
- Backend grup instance VM
- Cloud Run
- Konektivitas hybrid
Izin
Untuk mendapatkan izin yang Anda perlukan untuk menyelesaikan panduan ini, minta administrator Anda untuk memberi Anda peran IAM berikut di project:
-
Untuk membuat resource load balancer seperti
TargetHTTPProxy
: Admin Load Balancer Compute (roles/compute.loadBalancerAdmin
) -
Untuk menggunakan resource Certificate Manager:
Pemilik Certificate Manager (
roles/certificatemanager.owner
) -
Untuk membuat komponen keamanan dan jaringan:
Compute Network Admin (
roles/compute.networkAdmin
) dan Compute Security Admin (roles/compute.securityAdmin
) -
Untuk membuat project (opsional):
Project Creator (
roles/resourcemanager.projectCreator
)
Untuk mengetahui informasi selengkapnya tentang cara memberikan peran, lihat Mengelola akses ke project, folder, dan organisasi.
Anda mungkin juga bisa mendapatkan izin yang diperlukan melalui peran khusus atau peran bawaan lainnya.
Mendapatkan sertifikat CA root
CA root memiliki sertifikat yang ditandatangani sendiri yang perlu Anda tambahkan ke trust store. Sertifikat CA root berada di bagian atas rantai sertifikat.
Untuk mendapatkan sertifikat CA root, Anda harus membuat kumpulan CA terlebih dahulu, yang kosong saat dibuat. Kemudian, Anda perlu membuat root CA dan menambahkannya ke kumpulan CA. Root CA dan kumpulan CA dibuat menggunakan Certificate Authority Service seperti yang diuraikan dalam langkah-langkah berikut.
Untuk membuat CA pool, gunakan perintah
gcloud privateca pools create
:gcloud privateca pools create CA_POOL \ --location=us-central1
Ganti
CA_POOL
dengan ID atau nama CA pool induk.Untuk membuat CA root dan menambahkannya ke kumpulan CA, gunakan perintah
gcloud privateca roots create
:gcloud privateca roots create CA_ROOT \ --pool=CA_POOL \ --subject="CN=my-ca, O=Test LLC" \ --location=us-central1
Ganti kode berikut:
CA_ROOT
: ID atau nama CA root.CA_POOL
: ID atau nama pool CA induk.
Ekstrak sertifikat berenkode PEM yang mengidentifikasi root CA.
gcloud privateca roots describe CA_ROOT \ --pool=CA_POOL \ --location=us-central1 \ --format='value(pemCaCertificates)' > root.cert
Ganti kode berikut:
CA_ROOT
: ID atau nama CA pribadi.CA_POOL
: ID atau nama pool CA induk.
Sertifikat root (
root.cert
) harus diupload ke penyimpanan tepercaya. Langkah ini akan dilakukan di bagian berikutnya.
Untuk mengetahui informasi selengkapnya tentang cara menggunakan Certificate Authority Service untuk membuat kumpulan CA dan CA root, lihat artikel berikut:
Memformat sertifikat CA root
Untuk menyertakan sertifikat root di trust store, format sertifikat menjadi satu baris dan simpan di variabel lingkungan, sehingga dapat dirujuk oleh file YAML konfigurasi tepercaya.
export ROOT=$(cat root.cert | sed 's/^[ ]*//g' | tr '\n' $ | sed 's/\$/\\n/g')
Membuat resource konfigurasi kepercayaan
Konfigurasi kepercayaan adalah resource yang merepresentasikan konfigurasi Infrastruktur Kunci Publik (PKI) Anda di Certificate Manager.
Untuk membuat resource konfigurasi kepercayaan, selesaikan langkah-langkah berikut:
Konsol
Di konsol Google Cloud , buka halaman Certificate Manager.
Di tab Trust Configs, klik Add Trust Config.
Masukkan nama untuk konfigurasi.
Untuk Lokasi, pilih Global atau Regional.
Lokasi menunjukkan tempat resource konfigurasi kepercayaan disimpan. Untuk Load Balancer Aplikasi eksternal global, Load Balancer Aplikasi klasik, dan Load Balancer Aplikasi internal lintas-region, buat resource konfigurasi kepercayaan global. Untuk Load Balancer Aplikasi eksternal regional dan Load Balancer Aplikasi internal regional, buat resource konfigurasi kepercayaan regional.
Jika Anda memilih Regional, pilih wilayah.
Di bagian Trust store, klik Add trust anchor dan upload file sertifikat yang dienkode PEM, atau salin konten sertifikat.
Klik Tambahkan.
Klik Buat.
Pastikan resource konfigurasi kepercayaan baru muncul dalam daftar konfigurasi.
gcloud
Buat file YAML konfigurasi kepercayaan (
trust_config.yaml
) yang menentukan parameter konfigurasi kepercayaan. Dalam contoh ini, resource konfigurasi tepercaya adalah penyimpanan tepercaya dengan satu anchor tepercaya yang merepresentasikan sertifikat root. Sertifikat root ini dibuat menggunakan CA pribadi.cat << EOF > trust_config.yaml name: TRUST_CONFIG_NAME trustStores: - trustAnchors: - pemCertificate: "${ROOT?}" EOF
Untuk mengimpor file YAML konfigurasi kepercayaan, gunakan perintah
gcloud certificate-manager trust-configs import
:global
Untuk Load Balancer Aplikasi eksternal global, Load Balancer Aplikasi klasik, dan Load Balancer Aplikasi internal lintas-region, tentukan
global
sebagai lokasi penyimpanan resource konfigurasi tepercaya.gcloud certificate-manager trust-configs import TRUST_CONFIG_NAME \ --source=trust_config.yaml \ --location=global
Ganti kode berikut:
TRUST_CONFIG_NAME
: nama resource konfigurasi tepercaya.
regional
Untuk Load Balancer Aplikasi eksternal regional dan Load Balancer Aplikasi internal regional, tentukan region tempat resource konfigurasi tepercaya disimpan.
gcloud certificate-manager trust-configs import TRUST_CONFIG_NAME \ --source=trust_config.yaml \ --location=LOCATION
Ganti kode berikut:
TRUST_CONFIG_NAME
: nama resource konfigurasi tepercaya.LOCATION
: region tempat resource konfigurasi kepercayaan disimpan. Lokasi defaultnya adalahglobal
.
Buat resource Autentikasi Klien
Resource Autentikasi Klien (juga disebut ServerTLSPolicy
) memungkinkan
Anda menentukan mode TLS sisi server dan resource konfigurasi tepercaya yang akan digunakan
saat memvalidasi sertifikat klien. Saat klien memberikan sertifikat yang tidak valid atau tidak ada sertifikat ke load balancer, clientValidationMode
menentukan cara penanganan koneksi klien. Untuk mengetahui informasi selengkapnya, lihat
mode validasi klien mTLS.
- Jika
clientValidationMode
disetel keALLOW_INVALID_OR_MISSING_CLIENT_CERT
, semua permintaan diteruskan ke backend meskipun validasi gagal atau sertifikat klien tidak ada. - Jika
clientValidationMode
disetel keREJECT_INVALID
, hanya permintaan yang menyediakan sertifikat klien yang dapat divalidasi berdasarkan resourceTrustConfig
yang diteruskan ke backend.
Untuk membuat resource Autentikasi Klien (ServerTlsPolicy
),
selesaikan langkah-langkah berikut:
Konsol
Di konsol Google Cloud , buka halaman Authentication Configuration.
Di tab Client Authentication, klik Create.
Masukkan nama untuk resource Autentikasi Klien.
Untuk Lokasi, pilih Global atau Regional.
Untuk Load Balancer Aplikasi eksternal global, Load Balancer Aplikasi klasik, dan Load Balancer Aplikasi internal lintas-region, tetapkan lokasi ke global. Untuk Load Balancer Aplikasi eksternal regional dan Load Balancer Aplikasi internal regional, tetapkan lokasi ke region tempat load balancer dikonfigurasi.
Untuk Client Authentication mode, pilih Load balancing.
Pilih mode validasi klien.
Pilih resource konfigurasi kepercayaan yang Anda buat sebelumnya.
Klik Buat.
Pastikan Autentikasi Klien (ServerTlsPolicy
) ditampilkan.
gcloud
Berdasarkan cara Anda ingin menangani koneksi, pilih salah satu opsi berikut untuk menentukan resource Autentikasi Klien (
ServerTlsPolicy
) dalam format YAML.Opsi 1:
clientValidationMode
disetel keALLOW_INVALID_OR_MISSING_CLIENT_CERT
.global
Untuk Load Balancer Aplikasi eksternal global, Load Balancer Aplikasi klasik, dan Load Balancer Aplikasi internal lintas region, buat file YAML yang secara deklaratif menentukan mode validasi klien dan resource konfigurasi kepercayaan global:
cat << EOF > server_tls_policy.yaml name: SERVER_TLS_POLICY_NAME mtlsPolicy: clientValidationMode: ALLOW_INVALID_OR_MISSING_CLIENT_CERT clientValidationTrustConfig: projects/PROJECT_ID/locations/global/trustConfigs/TRUST_CONFIG_NAME EOF
regional
Untuk Load Balancer Aplikasi eksternal regional dan Load Balancer Aplikasi internal regional, buat file YAML yang secara deklaratif menentukan mode validasi klien dan resource konfigurasi kepercayaan regional:
cat << EOF > server_tls_policy.yaml name: SERVER_TLS_POLICY_NAME mtlsPolicy: clientValidationMode: ALLOW_INVALID_OR_MISSING_CLIENT_CERT clientValidationTrustConfig: projects/PROJECT_ID/locations/REGION/trustConfigs/TRUST_CONFIG_NAME EOF
Opsi 2:
clientValidationMode
disetel keREJECT_INVALID
.global
Untuk Load Balancer Aplikasi eksternal global, Load Balancer Aplikasi klasik, dan Load Balancer Aplikasi internal lintas region, buat file YAML yang secara deklaratif menentukan mode validasi klien dan resource konfigurasi kepercayaan global:
cat << EOF > server_tls_policy.yaml name: SERVER_TLS_POLICY_NAME mtlsPolicy: clientValidationMode: REJECT_INVALID clientValidationTrustConfig: projects/PROJECT_ID/locations/global/trustConfigs/TRUST_CONFIG_NAME EOF
regional
Untuk Load Balancer Aplikasi eksternal regional dan Load Balancer Aplikasi internal regional, buat file YAML yang secara deklaratif menentukan mode validasi klien dan resource konfigurasi kepercayaan regional:
cat << EOF > server_tls_policy.yaml name: SERVER_TLS_POLICY_NAME mtlsPolicy: clientValidationMode: REJECT_INVALID clientValidationTrustConfig: projects/PROJECT_ID/locations/REGION/trustConfigs/TRUST_CONFIG_NAME EOF
Ganti kode berikut:
SERVER_TLS_POLICY_NAME
: nama resource Autentikasi Klien (ServerTlsPolicy
).PROJECT_ID
: ID Google Cloud project Anda.LOCATION
: untuk Load Balancer Aplikasi eksternal global, Load Balancer Aplikasi klasik, dan Load Balancer Aplikasi internal lintas region, gunakanglobal
. Untuk Load Balancer Aplikasi eksternal regional atau Load Balancer Aplikasi internal regional, gunakan region tempat Anda mengonfigurasi load balancer.TRUST_CONFIG_NAME
: nama resource konfigurasi tepercaya yang Anda buat sebelumnya.
Untuk mengimpor resource
ServerTlsPolicy
Autentikasi Klien, gunakan perintahgcloud network-security server-tls-policies import
:global
Untuk Load Balancer Aplikasi eksternal global, Load Balancer Aplikasi klasik, dan Load Balancer Aplikasi internal lintas-region, setel tanda
--location
keglobal
.gcloud network-security server-tls-policies import SERVER_TLS_POLICY_NAME \ --source=server_tls_policy.yaml \ --location=global
Ganti kode berikut:
SERVER_TLS_POLICY_NAME
: nama resource Autentikasi Klien (ServerTlsPolicy
).regional
Untuk Load Balancer Aplikasi eksternal regional dan Load Balancer Aplikasi internal regional, tetapkan tanda
--location
ke region tempat load balancer dikonfigurasi.gcloud network-security server-tls-policies import SERVER_TLS_POLICY_NAME \ --source=server_tls_policy.yaml \ --location=LOCATION
Ganti kode berikut:
SERVER_TLS_POLICY_NAME
: nama resource Autentikasi Klien (ServerTlsPolicy
).Opsional: Untuk mencantumkan semua resource Autentikasi Klien (
ServerTlsPolicies
), gunakan perintahgcloud network-security server-tls-policies list
:gcloud network-security server-tls-policies list \ --location=LOCATION
Ganti kode berikut:
LOCATION
: Untuk Load Balancer Aplikasi eksternal global, Load Balancer Aplikasi klasik, dan Load Balancer Aplikasi internal lintas region, gunakanglobal
. Untuk Load Balancer Aplikasi eksternal regional atau Load Balancer Aplikasi internal regional, gunakan region tempat Anda mengonfigurasi load balancer.
Lampirkan resource Autentikasi Klien ke load balancer
Agar autentikasi TLS bersama berfungsi, setelah menyiapkan load balancer, Anda
harus melampirkan resource Autentikasi Klien (ServerTLSPolicy
) ke resource proxy HTTPS target load balancer.
Konsol
Di konsol Google Cloud , buka halaman Load balancing.
Dari daftar load balancer, pilih load balancer yang perlu Anda lampirkan resource Autentikasi Klien (
ServerTLSPolicy
).Klik
Edit.Di bagian Frontend configuration untuk frontend HTTPS, luaskan bagian Show Advanced features.
Dari daftar Client Authentication, pilih resource Client Authentication.
Klik Selesai.
Klik Perbarui.
gcloud
Untuk mencantumkan semua resource proxy HTTPS target dalam project Anda, gunakan perintah
gcloud compute target-https-proxies list
:gcloud compute target-https-proxies list
Catat nama proxy HTTPS target untuk melampirkan resource
ServerTLSPolicy
. Nama ini disebut sebagaiTARGET_HTTPS_PROXY_NAME
dalam langkah-langkah berikut.Untuk mengekspor konfigurasi proxy HTTPS target ke file, gunakan
gcloud compute target-https-proxies export
perintah.global
gcloud compute target-https-proxies export TARGET_HTTPS_PROXY_NAME \ --destination=TARGET_PROXY_FILENAME \ --global
Ganti kode berikut:
TARGET_HTTPS_PROXY_NAME
: nama proxy target.TARGET_PROXY_FILENAME
: nama file konfigurasi proxy target dalam format YAML. Contoh,mtls_target_proxy.yaml
.
regional
gcloud compute target-https-proxies export TARGET_HTTPS_PROXY_NAME \ --destination=TARGET_PROXY_FILENAME \ --region=REGION
Ganti kode berikut:
TARGET_HTTPS_PROXY_NAME
: nama proxy target.TARGET_PROXY_FILENAME
: nama file konfigurasi proxy target dalam format YAML. Misalnya,mtls_target_proxy.yaml
REGION
: region tempat Anda mengonfigurasi load balancer.
Untuk mencantumkan semua resource Autentikasi Klien (
ServerTlsPolicy
), gunakangcloud network-security server-tls-policies list
perintah:gcloud network-security server-tls-policies list \ --location=LOCATION
Ganti kode berikut:
LOCATION
: untuk Load Balancer Aplikasi internal lintas region, Load Balancer Aplikasi eksternal global, atau Load Balancer Aplikasi klasik, gunakanglobal
. Untuk Load Balancer Aplikasi eksternal regional atau Load Balancer Aplikasi internal regional, gunakan region tempat Anda mengonfigurasi load balancer.Catat nama resource Autentikasi Klien (
ServerTLSPolicy
) untuk mengonfigurasi mTLS. Nama ini disebut sebagaiSERVER_TLS_POLICY_NAME
pada langkah berikutnya.Tambahkan Autentikasi Klien (
ServerTlsPolicy
) ke proxy HTTPS target.echo "serverTlsPolicy: //networksecurity.googleapis.com/projects/PROJECT_ID/locations/LOCATION/serverTlsPolicies/SERVER_TLS_POLICY_NAME" >> TARGET_PROXY_FILENAME
Ganti kode berikut:
PROJECT_ID
: ID Google Cloud project Anda.LOCATION
: untuk Load Balancer Aplikasi eksternal global atau Load Balancer Aplikasi klasik, dan Load Balancer Aplikasi internal lintas region, gunakanglobal
. Untuk Load Balancer Aplikasi eksternal regional atau Load Balancer Aplikasi internal regional, gunakan region tempat Anda mengonfigurasi load balancer.SERVER_TLS_POLICY_NAME
: nama resource Autentikasi Klien (ServerTLSPolicy
).TARGET_PROXY_FILENAME
: nama file konfigurasi proxy target dalam format YAML.
Untuk mengimpor konfigurasi proxy HTTPS target dari file, gunakan perintah
gcloud compute target-https-proxies import
.global
gcloud compute target-https-proxies import TARGET_HTTPS_PROXY_NAME \ --source=TARGET_PROXY_FILENAME \ --global
Ganti kode berikut:
TARGET_HTTPS_PROXY_NAME
: nama proxy target.TARGET_PROXY_FILENAME
: nama file konfigurasi proxy target dalam format YAML. Contoh,mtls_target_proxy.yaml
.
regional
gcloud compute target-https-proxies import TARGET_HTTPS_PROXY_NAME \ --source=TARGET_PROXY_FILENAME \ --region=REGION
Ganti kode berikut:
TARGET_HTTPS_PROXY_NAME
: nama proxy target.TARGET_PROXY_FILENAME
: nama file konfigurasi proxy target dalam format YAML. Misalnya,mtls_target_proxy.yaml
REGION
: region tempat Anda mengonfigurasi load balancer.
Menambahkan header kustom mTLS
Saat mengaktifkan mTLS, Anda dapat meneruskan informasi tentang koneksi mTLS menggunakan header kustom. Anda juga dapat mengaktifkan logging sehingga kegagalan koneksi mTLS dicatat dalam log.
Menambahkan header kustom mTLS ke layanan backend
Untuk Load Balancer Aplikasi eksternal global atau Load Balancer Aplikasi klasik, Anda dapat menggunakan header kustom untuk meneruskan informasi tentang koneksi mTLS ke layanan backend.
Untuk mencantumkan semua layanan backend dalam project, gunakan perintah
gcloud compute backend-services list
:gcloud compute backend-services list
Catat nama layanan backend untuk mengaktifkan header kustom dan logging. Nama ini disebut sebagai
BACKEND_SERVICE
di langkah berikutnya.Untuk mengupdate layanan backend, gunakan perintah
gcloud compute backend-services update
:gcloud compute backend-services update BACKEND_SERVICE \ --global \ --enable-logging \ --logging-sample-rate=1 \ --custom-request-header='X-Client-Cert-Present:{client_cert_present}' \ --custom-request-header='X-Client-Cert-Chain-Verified:{client_cert_chain_verified}' \ --custom-request-header='X-Client-Cert-Error:{client_cert_error}' \ --custom-request-header='X-Client-Cert-Hash:{client_cert_sha256_fingerprint}' \ --custom-request-header='X-Client-Cert-Serial-Number:{client_cert_serial_number}' \ --custom-request-header='X-Client-Cert-SPIFFE:{client_cert_spiffe_id}' \ --custom-request-header='X-Client-Cert-URI-SANs:{client_cert_uri_sans}' \ --custom-request-header='X-Client-Cert-DNSName-SANs:{client_cert_dnsname_sans}' \ --custom-request-header='X-Client-Cert-Valid-Not-Before:{client_cert_valid_not_before}' \ --custom-request-header='X-Client-Cert-Valid-Not-After:{client_cert_valid_not_after}'
Menambahkan header kustom mTLS ke peta URL
Untuk Load Balancer Aplikasi internal lintas-region, Load Balancer Aplikasi eksternal regional, atau Load Balancer Aplikasi internal regional, Anda dapat menggunakan header kustom untuk meneruskan informasi tentang koneksi mTLS ke peta URL.
Untuk mencantumkan semua peta URL dalam project, gunakan
perintah gcloud compute url-maps list
:
gcloud compute url-maps list
Perhatikan nama peta URL untuk mengaktifkan header kustom dan logging.
Nama ini disebut sebagai URL_MAP_NAME
di
langkah berikutnya.
global
Untuk mengedit peta URL untuk Load Balancer Aplikasi internal lintas-region, gunakan perintah
gcloud compute
url-maps edit
:
gcloud compute url-maps edit URL_MAP_NAME --global
Berikut adalah contoh file YAML yang menunjukkan cara menggunakan variabel
di header permintaan kustom (requestHeadersToAdd
). Anda dapat menggunakan
variabel yang sama untuk mengirim header respons kustom
(responseHeadersToAdd
).
headerAction: requestHeadersToAdd: - headerName: "X-Client-Cert-Present" headerValue: "{client_cert_present}" - headerName: "X-Client-Cert-Chain-Verified" headerValue: "{client_cert_chain_verified}" - headerName: "X-Client-Cert-Error" headerValue: "{client_cert_error}" - headerName: "X-Client-Cert-Hash" headerValue: "{client_cert_sha256_fingerprint}" - headerName: "X-Client-Cert-Serial-Number" headerValue: "{client_cert_serial_number}" - headerName: "X-Client-Cert-SPIFFE" headerValue: "{client_cert_spiffe_id}" - headerName: "X-Client-Cert-URI-SANs" headerValue: "{client_cert_uri_sans}" - headerName: "X-Client-Cert-DNSName-SANs" headerValue: "{client_cert_dnsname_sans}" - headerName: "X-Client-Cert-Valid-Not-Before" headerValue: "{client_cert_valid_not_before}" - headerName: "X-Client-Cert-Valid-Not-After" headerValue: "{client_cert_valid_not_after}" - headerName: "X-Client-Cert-Issuer-Dn" headerValue: "{client_cert_issuer_dn}" - headerName: "X-Client-Cert-Subject-Dn" headerValue: "{client_cert_subject_dn}" - headerName: "X-Client-Cert-Leaf" headerValue: "{client_cert_leaf}" - headerName: "X-Client-Cert-Chain" headerValue: "{client_cert_chain}"
regional
Untuk mengedit peta URL Load Balancer Aplikasi eksternal regional atau
Load Balancer Aplikasi internal regional, gunakan perintah
gcloud compute
url-maps edit
:
gcloud compute url-maps edit URL_MAP_NAME --region=REGION
Berikut adalah contoh file YAML yang menunjukkan cara menggunakan variabel di
header permintaan kustom (requestHeadersToAdd
). Anda dapat menggunakan
variabel yang sama untuk mengirim header respons kustom
(responseHeadersToAdd
).
defaultService: regions/REGION/backendServices/BACKEND_SERVICE_1 name: regional-lb-map region: region/REGION headerAction: requestHeadersToAdd: - headerName: "X-Client-Cert-Present" headerValue: "{client_cert_present}" - headerName: "X-Client-Cert-Chain-Verified" headerValue: "{client_cert_chain_verified}" - headerName: "X-Client-Cert-Error" headerValue: "{client_cert_error}" - headerName: "X-Client-Cert-Hash" headerValue: "{client_cert_sha256_fingerprint}" - headerName: "X-Client-Cert-Serial-Number" headerValue: "{client_cert_serial_number}" - headerName: "X-Client-Cert-SPIFFE" headerValue: "{client_cert_spiffe_id}" - headerName: "X-Client-Cert-URI-SANs" headerValue: "{client_cert_uri_sans}" - headerName: "X-Client-Cert-DNSName-SANs" headerValue: "{client_cert_dnsname_sans}" - headerName: "X-Client-Cert-Valid-Not-Before" headerValue: "{client_cert_valid_not_before}" - headerName: "X-Client-Cert-Valid-Not-After" headerValue: "{client_cert_valid_not_after}" - headerName: "X-Client-Cert-Issuer-Dn" headerValue: "{client_cert_issuer_dn}" - headerName: "X-Client-Cert-Subject-Dn" headerValue: "{client_cert_subject_dn}" - headerName: "X-Client-Cert-Leaf" headerValue: "{client_cert_leaf}" - headerName: "X-Client-Cert-Chain" headerValue: "{client_cert_chain}"
Mendapatkan sertifikat klien menggunakan CSR
Bagian ini menyediakan opsi konfigurasi tambahan untuk membuat sertifikat klien (leaf) yang ditandatangani oleh sertifikat CA root.
Untuk mendapatkan sertifikat klien, buat permintaan penandatanganan sertifikat (CSR) dan kirimkan ke kumpulan CA.
Buat file konfigurasi OpenSSL untuk membuat CSR bagi sertifikat klien.
File konfigurasi berikut (
client.config
) berisi bagian[extension_requirements]
, yang menentukan ekstensi X.509 yang akan disertakan dalam CSR. Untuk mempelajari lebih lanjut persyaratan sertifikat klien, lihat Persyaratan sertifikat.cat > client.config << EOF [req] default_bits = 2048 req_extensions = extension_requirements distinguished_name = dn_requirements prompt = no [extension_requirements] basicConstraints = critical, CA:FALSE keyUsage = critical, nonRepudiation, digitalSignature, keyEncipherment extendedKeyUsage = clientAuth [dn_requirements] countryName = US stateOrProvinceName = California localityName = San Francisco 0.organizationName = example organizationalUnitName = test commonName = test.example.com emailAddress = test@example.com EOF
Jalankan perintah
openssl
berikut untuk membuat CSR (csr.pem
) dan kunci pribadi yang sesuai (key.pem
).openssl req -newkey rsa:2048 -nodes \ -config client.config \ -keyout key.pem \ -out csr.pem
Jalankan perintah
gcloud privateca certificates create
berikut untuk mengirimkan CSR dan meminta sertifikat klien X.509 dari CA di kumpulan CA.gcloud privateca certificates create \ --issuer-pool CA_POOL \ --issuer-location=us-central1 \ --csr csr.pem \ --cert-output-file CERT_FILENAME
Ganti kode berikut:
CA_POOL
: ID atau nama pool CA.CERT_FILENAME
: file rantai sertifikat berenkode PEM yang diurutkan dari leaf ke root.
Kirim permintaan HTTPS yang aman ke alamat IP load balancer menggunakan sertifikat SSL sisi klien. Klien memberikan sertifikatnya untuk mengautentikasi dirinya ke load balancer.
curl -v --key key.pem --cert CERT_FILENAME https://IP_ADDRESS
Ganti kode berikut:
CERT_FILENAME
: file rantai sertifikat berenkode PEM yang diurutkan dari leaf ke root.IP_ADDRESS
: alamat IP load balancer.