如何使用自签名证书链创建链式证书

时间:2013-02-20 12:34:27

标签: ruby-on-rails ssl openssl ca

我正在尝试将我的rails应用程序转换为https://。出于测试目的,我使用openssl创建了一个自签名证书。我使用nginx作为Web服务器。然后我使用此证书配置了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

和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

此证书取决于 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

如何捆绑这三个证书以正确创建链式证书。我以自己的方式尝试但是它显示了同样的错误。

任何人都可以帮忙解决问题,过去一周我正在研究这个问题。

由于 问候

1 个答案:

答案 0 :(得分:2)

重定向循环与证书链或证书格式无关。您在Web服务器配置或应用程序逻辑中出错。我猜您正在尝试从http重定向到https,但重定向也是从https提供的,因此这会导致循环。

谷歌浏览器(以及其他一些浏览器)缓存重定向,因此可能很难正确调试并修复循环问题(即使您在服务器/应用程序端修复了问题,它仍可能重定向)。确保您的请求到达后端,清除浏览器缓存或curl等工具以正确调试问题。