Làm cách nào để chỉ định objectAltName trong openssl cli?


9

Tôi đang tạo chứng chỉ SSL tự ký:

$ openssl req -x509 -newkey rsa:2048 -subj 'CN=example.com'

Tôi cũng muốn chỉ định một chủ đềAltName trong thời gian tạo, nhưng tôi không thể tìm thấy thông tin trong trang web openssl về cách thực hiện việc này.


2
Không có chuyển đổi dòng lệnh. Bạn phải ghi nó vào một tệp cấu hình và sau đó sử dụng tệp cấu hình này.
Steffen Ullrich

Câu trả lời:


4

Cố gắng viết chủ đềAltName vào một tệp tạm thời (tôi sẽ đặt tên nó là hostextfile ) như

basicConstraints=CA:FALSE
extendedKeyUsage=serverAuth
subjectAltName=email:my@other.address,RID:1.2.3.4

và liên kết với nó trong lệnh openssl thông qua tùy chọn "-extfile", ví dụ:

openssl ca -days 730 -in hostreq.pem -out -hostcert.pem -extfile hostextfile

1
Tôi tin rằng điều đó là đúng. X509v3 Tên thay thế chủ đề: DNS: kb.example.com, DNS: helpdesk.example.com
quadruplebucky

Tôi đã sử dụng mô tả này .
Viktor

3

Các openssllệnh không cung cấp một cách để bao gồm phần mở rộng như SubjectAltName mà không cần viết một tập tin cấu hình đầu tiên. Tôi đã viết một tiện ích đơn giản mà làm tất cả tự động. Nó có sẵn trên github: https://github.com/rtts/certify

Ví dụ sử dụng:

./certify example.com www.example.com mail.example.com

Điều này sẽ tạo một tệp có tên example.com.crtchứa chứng chỉ với Tên thay thế chủ đề của example.com, www.example.com và mail.example.com.


0

Tạo chứng chỉ tự ký với SubjectAltName

cd /etc/ssl

cat > my.conf <<- "EOF"
[req]
default_bits = 2048
prompt = no
default_md = sha256
req_extensions = req_ext
distinguished_name = dn

[ dn ]
C=UA
ST=Dnepropetrovskaya
L=Kamyanske
O=DMK
OU=OASUP
emailAddress=webmaster@localhost
CN = www.dmkd.dp.ua

[ req_ext ]
basicConstraints = CA:FALSE
keyUsage = nonRepudiation, digitalSignature, keyEncipherment
subjectAltName = @alt_names

[ alt_names ]
DNS.0 = www.dmkd.dp.ua
DNS.1 = dmkd.dp.ua

EOF

# Create key
openssl genrsa -des3 -out server.key.secure 2048
# Disable secret phrase for key
openssl rsa -in server.key.secure -out server.insecure.key
# Create request certificate file with params from file my.conf
openssl req -new -key server.insecure.key -out server.csr -config my.conf
# Create certificate with params from file my.conf
openssl x509 -req -days 365 -in server.csr -signkey server.insecure.key -out server.crt -extensions req_ext -extfile my.conf
# Check request file and certificate for SubjectAltName precense
openssl req -text -noout -in server.csr
openssl x509 -in server.crt -text -noout

0

Tôi đã sử dụng thông tin ở đây, nhưng làm mỏng nó thành thông tin cần thiết để đáp ứng lông mày ..

Tệp tùy chọn tiện ích mở rộng x509 v3:

echo "subjectAltName = @alt_names

[alt_names]
DNS.1 = www.example.com" > v3.ext

Tệp khóa ngoài:

openssl genrsa -out www.example.com.key 2048

Yêu cầu ký CA: (Giả sử bạn có khóa CA và chứng chỉ)

openssl req -new -key www.example.com.key -subj "/CN=www.example.com" -out www.example.com.csr

Ký yêu cầu tạo chứng chỉ và bao gồm dữ liệu Tiện ích mở rộng x509:

openssl x509 -req -in www.example.com.csr -CA ca.example.com.crt -CAkey ca.example.com.key -CAcreateserial -out www.example.com.crt -days 500 -sha256 -extfile v3.ext
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.