Как я могу создать связанный сертификат, используя самозаверяющие цепочки сертификатов

Я пытаюсь преобразовать свое приложение rails для работы как https://. Для тестирования я создал самоподписанный сертификат, используя openssl. Я использую nginx в качестве веб-сервера. Затем я настроил nginx, используя этот сертификат.

Но при приеме приложения он показывает https:// перед адресом, но показывает результат как Эта веб-страница имеет цикл перенаправления, Эта веб-страница https://myapp.com приводит к слишком большому количеству переадресаций в Chrome, и в других браузерах также возникают проблемы с переадресацией.

После слишком многих исследований я нашел подсказку, например, для решения этой проблемы необходимо использовать связанный сертификат. Затем я попытался создать цепочки сертификатов. Способ, который я использовал, объясняется ниже.

openssl req -new -newkey rsa:1024 -nodes -out ca.csr -keyout ca.key
openssl x509 -trustout -signkey ca.key -days 365 -req -in ca.csr -out ca.pem 

Я скопировал ca.pem в

/etc/ssl/certs

и ключ к

/etc/ssl/private

Затем отредактировал openssl.conf в соответствии с потребностями и создал два новых каталога CA и newcerts внутри /etc/ssl.

и предоставьте новый серийный номер и файл базы данных, выполнив следующие команды.

sudo sh -c "echo '01' > /etc/ssl/CA/serial"
sudo touch /etc/ssl/CA/index.txt

Затем я создал сертификат клиента, выполнив следующие команды.

openssl genrsa -out client.key 1024
openssl req -new -key client.key -out client.csr
openssl ca -in client.csr -out client.cer

Этот сертификат зависит от ca.pem.

Затем я создал третий сертификат из второго сертификата, означающего client.cer, и это не зависит от ca.pem, используя следующую команду.

 # Create a certificate request
 openssl req -new -keyout client1.key -out client1.request -days 365

 # Create and sign the certificate
 openssl ca -policy policy_anything -keyfile client.key -cert client.pem -out client1.pem -infiles client1.request

и изменил опцию openssl.conf

[ usr_cert ]
basicConstraints=CA:TRUE # prev value was FALSE

Теперь у меня есть цепочка сертификатов, например

ca.pem -> client.pem -> client1.pem

Как я могу связать эти три сертификата, чтобы правильно создать связанный сертификат. Я пробовал по-своему, но он показывает ту же ошибку.

Может ли кто-нибудь помочь решить проблему, последнюю неделю я работаю над проблемой.

С уважением


person apr    schedule 20.02.2013    source источник
comment
Насколько я понимаю, вы хотели бы иметь либо один большой двоичный объект ASN.1, содержащий все три, либо большой двоичный объект ASN.1, содержащий ca.pem и client.pem (для ясности я бы назвал его промежуточным.pem! !!)   -  person mcr    schedule 09.08.2013


Ответы (1)


Цикл перенаправления не имеет ничего общего с цепочкой сертификатов или форматом сертификата в этом отношении. У вас ошибка либо в конфигурации веб-сервера, либо в логике приложения. Я предполагаю, что вы пытаетесь перенаправить на https с http, но перенаправление также выполняется с https, поэтому это приводит к циклу.

Google Chrome (и другие браузеры в некоторой степени) кэширует перенаправления, поэтому может быть сложно правильно отлаживать и устранять проблему с циклами (он все равно может перенаправлять, даже если вы исправите проблему на стороне сервера/приложения). Убедитесь, что ваши запросы попадают на серверную часть, очистите кеш браузера или воспользуйтесь такими инструментами, как curl, чтобы правильно отладить проблему.

person mdrozdziel    schedule 15.09.2013