mirror of
https://github.com/dyzulk/trustlab-docs.git
synced 2026-01-26 13:32:08 +07:00
98 lines
2.8 KiB
Plaintext
98 lines
2.8 KiB
Plaintext
import { Callout, Steps } from 'nextra/components'
|
|
import { Terminal, Code, Server, Download } from 'lucide-react'
|
|
|
|
# Masalah CLI & Bahasa Pemrograman
|
|
|
|
Bahkan jika Anda sudah menginstal Root CA di sistem operasi Anda, banyak alat pengembang dan bahasa pemrograman yang **mengabaikan penyimpanan sistem (system store)** dan menggunakan penyimpanan mereka sendiri.
|
|
|
|
<Callout type="info" emoji={<Download className="w-5 h-5" />}>
|
|
**Prasyarat:**
|
|
Anda harus memiliki file **`trustlab-root.crt`** yang sudah diunduh di mesin Anda.
|
|
[Unduh di sini](/id/guide/getting-started/install-root-ca).
|
|
</Callout>
|
|
|
|
Jika kode atau skrip Anda gagal dengan kesalahan sertifikat, periksa solusi di bawah ini.
|
|
|
|
## 1. cURL & Wget
|
|
|
|
Alat baris perintah standar sering kali mencari file bundle tertentu.
|
|
|
|
### cURL
|
|
<Callout type="error" emoji={<Terminal className="w-5 h-5" />}>
|
|
`curl: (60) SSL certificate problem: unable to get local issuer certificate`
|
|
</Callout>
|
|
|
|
**Solusi:**
|
|
Teruskan Root CA secara eksplisit:
|
|
```bash
|
|
curl --cacert /jalur/ke/trustlab-root.crt https://domain-anda.local
|
|
```
|
|
|
|
### Wget
|
|
**Solusi:**
|
|
```bash
|
|
wget --ca-certificate=/jalur/ke/trustlab-root.crt https://domain-anda.local
|
|
```
|
|
|
|
---
|
|
|
|
## 2. Node.js / JavaScript
|
|
|
|
Node.js tidak menggunakan Root CA Sistem secara default.
|
|
|
|
<Callout type="error" emoji={<Server className="w-5 h-5" />}>
|
|
`Error: self signed certificate in certificate chain`
|
|
</Callout>
|
|
|
|
**Solusi (Variabel Lingkungan):**
|
|
Atur variabel ini sebelum menjalankan aplikasi Anda. Ini berfungsi untuk sebagian besar aplikasi Node.js (npm, yarn, skrip kustom).
|
|
|
|
```bash
|
|
export NODE_EXTRA_CA_CERTS="/jalur/ke/trustlab-root.crt"
|
|
node server.js
|
|
```
|
|
|
|
---
|
|
|
|
## 3. Python (Requests/Pip)
|
|
|
|
Pustaka `requests` di Python (dan `pip`) menggunakan paket sertifikatnya sendiri (`certifi`), mengabaikan penyimpanan sistem Windows/macOS/Linux.
|
|
|
|
<Callout type="error" emoji={<Code className="w-5 h-5" />}>
|
|
`SSLError(SSLCertVerificationError(1, '[SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed'))`
|
|
</Callout>
|
|
|
|
**Solusi:**
|
|
Arahkan ke Root CA Anda menggunakan variabel lingkungan.
|
|
|
|
```bash
|
|
export REQUESTS_CA_BUNDLE="/jalur/ke/trustlab-root.crt"
|
|
python script.py
|
|
```
|
|
|
|
---
|
|
|
|
## 4. Aplikasi Java
|
|
|
|
Java menggunakan "Keystore" (JKS) milik sendiri dan biasanya **mengabaikan** Windows Certificate Store.
|
|
|
|
<Callout type="error" emoji={<Code className="w-5 h-5" />}>
|
|
`sun.security.validator.ValidatorException: PKIX path building failed`
|
|
</Callout>
|
|
|
|
**Solusi:**
|
|
Anda harus mengimpor Root CA TrustLab ke dalam Java Keystore (cacerts).
|
|
|
|
<Steps>
|
|
### Lokasi standar cacerts
|
|
Biasanya di `$JAVA_HOME/lib/security/cacerts`.
|
|
|
|
### Impor dengan keytool
|
|
```bash
|
|
keytool -import -trustcacerts -alias trustlab-root \
|
|
-file trustlab-root.crt \
|
|
-keystore "$JAVA_HOME/lib/security/cacerts"
|
|
```
|
|
*Kata sandi default biasanya adalah `changeit`.*
|
|
</Steps>
|