Ruby on rails 如何使用自签名证书链创建链接证书

Ruby on rails 如何使用自签名证书链创建链接证书,ruby-on-rails,ssl,openssl,ca,Ruby On Rails,Ssl,Openssl,Ca,我正在尝试将rails应用程序转换为https://。出于测试目的,我使用openssl创建了一个自签名证书。我使用nginx作为web服务器。然后我使用这个证书配置了nginx 但是,在使用应用程序时,它在地址前显示https://但将结果显示为 此网页有一个重定向循环,此网页在chrome中导致了太多的重定向,其他浏览器也出现了重定向问题 经过太多的研究,我发现了一个线索,比如需要使用链式证书来解决这个问题。然后我尝试创建证书链。我使用的方法如下所述 openssl req -new -ne

我正在尝试将rails应用程序转换为https://。出于测试目的,我使用openssl创建了一个自签名证书。我使用nginx作为web服务器。然后我使用这个证书配置了nginx

但是,在使用应用程序时,它在地址前显示https://但将结果显示为 此网页有一个重定向循环,此网页在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
和ca.key

/etc/ssl/private
然后根据需要编辑openssl.conf,并在/etc/ssl内创建两个新目录CA和newcerts

并通过运行以下命令提供新的串行和数据库文件

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
然后,我通过运行以下命令创建了一个客户端证书

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

然后,我使用下面的命令从第二个cerificate meansclient.cer创建了第三个cerificate,它不依赖于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

如何捆绑这三个证书以正确创建链接证书。我用我自己的方式试过,但它显示出同样的错误

有人能帮我解决这个问题吗?过去一周我一直在解决这个问题

谢谢
关于这一点,重定向循环与证书链或证书格式无关。web服务器配置或应用程序逻辑中存在错误。我猜您正试图从http重定向到https,但重定向也是从https提供的,所以这会导致一个循环


Google Chrome(和其他浏览器在某种程度上)缓存重定向,因此可能很难通过循环正确调试和修复该问题(即使您在服务器/应用程序端修复了该问题,它仍可能重定向)。确保您的请求命中后端、清除浏览器缓存或使用诸如curl之类的工具来正确调试问题。

据我所知,您希望有一个包含所有三个的ASN.1 blob,或者一个包含ca.pem和client.pem的ASN.1 blob(我称之为mediator.pem以清除!!!)