Bisakah seseorang membantu saya dengan sintaks yang tepat?
Ini adalah proses tiga langkah, dan ini melibatkan modifikasi openssl.cnf
file. Anda mungkin dapat melakukannya hanya dengan opsi baris perintah, tetapi saya tidak melakukannya dengan cara itu.
Temukan openssl.cnf
file Anda . Kemungkinan besar terletak di /usr/lib/ssl/openssl.cnf
:
$ find /usr/lib -name openssl.cnf
/usr/lib/openssl.cnf
/usr/lib/openssh/openssl.cnf
/usr/lib/ssl/openssl.cnf
Di sistem Debian saya , /usr/lib/ssl/openssl.cnf
digunakan oleh openssl
program bawaan. Pada sistem Debian terbaru, ini terletak di/etc/ssl/openssl.cnf
Anda dapat menentukan mana openssl.cnf
yang digunakan dengan menambahkan file palsu XXX
dan melihat apakah openssl
tersedak.
Pertama, ubah req
parameter. Tambahkan alternate_names
bagian openssl.cnf
dengan nama yang ingin Anda gunakan. Tidak ada alternate_names
bagian yang ada , jadi tidak masalah di mana Anda menambahkannya.
[ alternate_names ]
DNS.1 = example.com
DNS.2 = www.example.com
DNS.3 = mail.example.com
DNS.4 = ftp.example.com
Selanjutnya, tambahkan yang berikut ini ke bagian yang ada [ v3_ca ]
. Cari string yang tepat [ v3_ca ]
:
subjectAltName = @alternate_names
Anda dapat mengubah keyUsage
ke yang berikut di bawah ini [ v3_ca ]
:
keyUsage = digitalSignature, keyEncipherment
digitalSignature
dan keyEncipherment
merupakan tarif standar untuk sertifikat server. Jangan khawatir nonRepudiation
. Ini sedikit tidak berguna dipikirkan oleh orang-orang ilmu komputer yang ingin menjadi pengacara. Itu tidak ada artinya di dunia hukum.
Pada akhirnya, IETF ( RFC 5280 ), browser, dan CA berjalan cepat dan longgar, jadi mungkin tidak masalah penggunaan kunci apa yang Anda berikan.
Kedua, ubah parameter penandatanganan. Temukan baris ini di bawah CA_default
bagian:
# Extension copying option: use with caution.
# copy_extensions = copy
Dan ubah menjadi:
# Extension copying option: use with caution.
copy_extensions = copy
Ini memastikan SAN disalin ke dalam sertifikat. Cara lain untuk menyalin nama DNS rusak.
Ketiga, buat sertifikat yang Anda tandatangani sendiri:
$ openssl genrsa -out private.key 3072
$ openssl req -new -x509 -key private.key -sha256 -out certificate.pem -days 730
You are about to be asked to enter information that will be incorporated
into your certificate request.
What you are about to enter is what is called a Distinguished Name or a DN.
...
Terakhir, periksa sertifikatnya:
$ openssl x509 -in certificate.pem -text -noout
Certificate:
Data:
Version: 3 (0x2)
Serial Number: 9647297427330319047 (0x85e215e5869042c7)
Signature Algorithm: sha256WithRSAEncryption
Issuer: C=US, ST=MD, L=Baltimore, O=Test CA, Limited, CN=Test CA/emailAddress=test@example.com
Validity
Not Before: Feb 1 05:23:05 2014 GMT
Not After : Feb 1 05:23:05 2016 GMT
Subject: C=US, ST=MD, L=Baltimore, O=Test CA, Limited, CN=Test CA/emailAddress=test@example.com
Subject Public Key Info:
Public Key Algorithm: rsaEncryption
Public-Key: (3072 bit)
Modulus:
00:e2:e9:0e:9a:b8:52:d4:91:cf:ed:33:53:8e:35:
...
d6:7d:ed:67:44:c3:65:38:5d:6c:94:e5:98:ab:8c:
72:1c:45:92:2c:88:a9:be:0b:f9
Exponent: 65537 (0x10001)
X509v3 extensions:
X509v3 Subject Key Identifier:
34:66:39:7C:EC:8B:70:80:9E:6F:95:89:DB:B5:B9:B8:D8:F8:AF:A4
X509v3 Authority Key Identifier:
keyid:34:66:39:7C:EC:8B:70:80:9E:6F:95:89:DB:B5:B9:B8:D8:F8:AF:A4
X509v3 Basic Constraints: critical
CA:FALSE
X509v3 Key Usage:
Digital Signature, Non Repudiation, Key Encipherment, Certificate Sign
X509v3 Subject Alternative Name:
DNS:example.com, DNS:www.example.com, DNS:mail.example.com, DNS:ftp.example.com
Signature Algorithm: sha256WithRSAEncryption
3b:28:fc:e3:b5:43:5a:d2:a0:b8:01:9b:fa:26:47:8e:5c:b7:
...
71:21:b9:1f:fa:30:19:8b:be:d2:19:5a:84:6c:81:82:95:ef:
8b:0a:bd:65:03:d1