Я хочу использовать самозаверяющие сертификаты в моем собственном локальном домене.
Я создаю root сертификат, затем промежуточный сертификат. Затем я подписываю сертификат сервера промежуточным сертификатом.
Я добавляю сертификат root в качестве «Полномочия» к Firefox.
Затем я получаю доступ к серверу, который использует сертификат сервера и TLS работает как положено. Я вижу сертификат подключения как подписанный, как я выбрал, и т. Д. c.
Но если я посмотрю подробности о сертификате root в списке "Полномочия" в Firefox, он не может показать сертификат и сообщает об ошибке:
Вот как я создаю root сертификат:
CERT_DN="/C=US/ST=NY/L=New York City/O=My Org/CN=${DOMAIN}"
openssl genrsa -passout pass:1111 -des3 -out ca.key.pem 4096
openssl req -passin pass:1111 -new -x509 -days ${ROOT_DAYS} -key ca.key.pem -out ca.cert.pem \
-subj "${CERT_DN}/OU=Eng local testing, root"
Вот как я создаю промежуточный сертификат:
openssl genrsa -passout pass:1111 -des3 -out ca-intermediate.key.pem 4096
openssl req -passin pass:1111 -new -key ca-intermediate.key.pem -out ca-intermediate.csr \
-subj "${CERT_DN}/OU=Eng local testing, intermediate"
openssl x509 -req -passin pass:1111 -days ${INTERMEDIATE_DAYS} -extensions v3_intermediate_ca \
-extfile ${openssl_conf_file} \
-in ca-intermediate.csr -CA ca.cert.pem -CAkey ca.key.pem -set_serial 01 \
-out ca-intermediate.cert.pem
openssl rsa -passin pass:1111 -in ca-intermediate.key.pem -out ca-intermediate.key.pem
Так я создаю сертификат сервера (который я затем устанавливаю в браузер):
openssl genrsa -passout pass:1111 -des3 -out ${server_name}.key.pem 4096
openssl req -passin pass:1111 -new -key ${server_name}.key.pem -out ${server_name}.csr \
-subj "/C=US/ST=NY/L=New York City/O=My Org/CN=${server_name}.${DOMAIN}"
openssl x509 -req -passin pass:1111 -days 365 -in ${server_name}.csr \
-CA ${CERTS_DIR}/ca-intermediate.cert.pem -CAkey ${KEYS_DIR}/ca-intermediate.key.pem \
-set_serial 01 -out ${server_name}.cert.pem
openssl rsa -passin pass:1111 -in ${server_name}.key.pem -out ${server_name}.key.pem
CHAIN_CERTS="${server_name}.cert.pem ${CERTS_DIR}/ca-intermediate.cert.pem ${CERTS_DIR}/ca.cert.pem"
cat ${CHAIN_CERTS} > ${CERTS_DIR}/${server_name}-chain.cert.pem
Это все выглядит вполне стандартно и в соответствии с онлайн-инструкциями .
Чего мне не хватает?