Ai đó có thể giúp tôi với cú pháp chính xác không?
Đó là một quy trình gồm ba bước và nó bao gồm việc sửa đổi openssl.cnf
tệp. Bạn có thể làm điều đó chỉ với các tùy chọn dòng lệnh, nhưng tôi không làm theo cách đó.
Tìm openssl.cnf
tệp của bạn . Nó có thể nằm ở /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
Trên tôi Debian hệ thống, /usr/lib/ssl/openssl.cnf
được sử dụng bởi được xây dựng trong openssl
chương trình. Trên các hệ thống Debian gần đây, nó nằm ở/etc/ssl/openssl.cnf
Bạn có thể xác định cái nào openssl.cnf
đang được sử dụng bằng cách thêm nội dung giả XXX
vào tệp và xem có openssl
cuộn cảm hay không.
Đầu tiên, hãy sửa đổi các req
thông số. Thêm một alternate_names
phần openssl.cnf
với tên bạn muốn sử dụng. Không có alternate_names
phần nào hiện có , vì vậy không quan trọng bạn thêm nó vào đâu.
[ alternate_names ]
DNS.1 = example.com
DNS.2 = www.example.com
DNS.3 = mail.example.com
DNS.4 = ftp.example.com
Tiếp theo, thêm phần sau vào phần hiện có [ v3_ca ]
. Tìm kiếm chuỗi chính xác [ v3_ca ]
:
subjectAltName = @alternate_names
Bạn có thể thay đổi keyUsage
những điều sau theo [ v3_ca ]
:
keyUsage = digitalSignature, keyEncipherment
digitalSignature
và keyEncipherment
là giá vé tiêu chuẩn cho chứng chỉ máy chủ. Đừng lo lắng về nonRepudiation
. Đó là một chút vô ích được nghĩ ra bởi những chàng trai / cô gái khoa học máy tính muốn trở thành luật sư. Nó không có nghĩa là gì trong thế giới pháp lý.
Cuối cùng, IETF ( RFC 5280 ), các trình duyệt và CA chạy nhanh và lỏng lẻo, vì vậy có thể bạn cung cấp cách sử dụng khóa nào không quan trọng.
Thứ hai, sửa đổi các tham số ký kết. Tìm dòng này dưới CA_default
phần:
# Extension copying option: use with caution.
# copy_extensions = copy
Và thay đổi nó thành:
# Extension copying option: use with caution.
copy_extensions = copy
Điều này đảm bảo SAN được sao chép vào chứng chỉ. Các cách khác để sao chép tên DNS bị hỏng.
Thứ ba, tạo chứng chỉ tự ký của bạn:
$ 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.
...
Cuối cùng, kiểm tra chứng chỉ:
$ 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