Peringatan: Sebelum Anda terjun ke ladang ranjau menjalankan Otoritas Sertifikasi Anda sendiri, Anda mungkin perlu mempelajari implikasi keamanan!
Tetapi jika Anda harus, baca terus untuk CA cepat dan kotor yang akan memberi Anda https://localhost/
tanpa pesan peringatan ...
Buat file teks berikut:
# OpenSSL configuration for Root CA
[ req ]
prompt = no
string_mask = default
# The size of the keys in bits:
default_bits = 2048
distinguished_name = req_distinguished_name
x509_extensions = x509_ext
[ req_distinguished_name ]
# Note that the following are in 'reverse order' to what you'd expect to see.
countryName = gb
organizationName = Test
commonName = Test Root CA
[ x509_ext ]
basicConstraints=critical,CA:true,pathlen:0
keyUsage=critical,keyCertSign,cRLSign
Simpan sebagai root.cnf
lalu hasilkan permintaan dengan:
$ openssl req -x509 -new -keyout root.key -out root.cer -config root.cnf
Ini akan membuat sertifikat Root CA Anda ( root.cer
) dan kunci pribadi Root CA Anda ( root.key
) yang harus Anda jaga tetap pribadi. Ini akan meminta kata sandi untuk kunci pribadi - pastikan Anda memilih yang kuat.
Sekarang buat file config untuk sertifikat server:
# OpenSSL configuration for end-entity cert
[ req ]
prompt = no
string_mask = default
# The size of the keys in bits:
default_bits = 2048
distinguished_name = req_distinguished_name
x509_extensions = x509_ext
[ req_distinguished_name ]
# Note that the following are in 'reverse order' to what you'd expect to see.
countryName = gb
organizationName = Test
commonName = localhost
[ x509_ext ]
keyUsage=critical,digitalSignature,keyAgreement
subjectAltName = @alt_names
# Multiple Alternate Names are possible
[alt_names]
DNS.1 = localhost
# DNS.2 = altName.example.com
Simpan sebagai server.cnf
dan hasilkan permintaan dengan:
openssl req -nodes -new -keyout server.key -out server.csr -config server.cnf
Di atas akan menghasilkan kunci pribadi lain ( server.key
) yang harus Anda lindungi. Dalam hal ini, kuncinya tidak dilindungi kata sandi, tetapi Anda dapat menambahkan kata sandi dengan menghapus -nodes
opsi.
Terakhir, tandatangani permintaan dengan CA Root baru Anda dan ekstensi dari server.cnf
file (untuk kenyamanan):
$ openssl x509 -req -in server.csr -CA root.cer -CAkey root.key -set_serial 123 -out server.cer -extfile server.cnf -extensions x509_ext
Catatan: pilih nomor acak apa saja untuk -set_serial
opsi tersebut.
Ia akan meminta kata sandi yang Anda masukkan saat membuat CA Root.
Sertifikat server ( server.cer
) akan dibuat.
Sekarang, tambahkan sertifikat Root CA ( root.cer
) ke toko anchor trust Firefox dan jalankan tes dengan:
$ sudo openssl s_server -key server.key -cert server.cer -accept 443 -www
Catatan: Anda mungkin mendapatkan kesalahan jika Anda telah memiliki server yang berjalan di port 443. Dalam hal ini, hentikan server yang sedang berjalan atau ubah nomor port di atas ke port lain yang tidak digunakan.
Ketika Anda berpindah ke https://localhost
(atau https://localhost:<port>
jika Anda mengubah nomor port di atas) dengan Firefox, Anda seharusnya sekarang tidak melihat peringatan dan disajikan daftar sandi yang bisa ditawarkan oleh instalasi OpenSSL Anda.
Setelah Anda puas dengan hasilnya, tambahkan server.key
dan server.cer
ke server web Anda dan konfigurasikan sesuai.