ruby-on-rails - 如何使用自签名证书链创建链式证书

标签 ruby-on-rails ssl openssl ca

我正在尝试将我的 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

和 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

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

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

谢谢 问候

最佳答案

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

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

关于ruby-on-rails - 如何使用自签名证书链创建链式证书,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14979997/

相关文章:

javascript - 带有 Rails(设计)身份验证的 Marionette.js

sql - 如何查找带有多个标签的帖子

ruby-on-rails - 选择_tag : Style and Modify Options Upon Condition

android - 服务器证书使用 SAN(主题备用名称)时的 SSLException

c# - 当颁发者不是 X509Store 信任根时使用证书使用 Microsoft .NET 框架进行客户端身份验证

c++ - 使用 crypto++ 库验证 openssl 签名

ruby-on-rails - 使用 ruby​​ on Rails 进行定时服务器事件

php - 无法在 SSL 网站上使用 Paypal API

c - 选择返回后 SSL_read 超时

iphone - 如何从 OpenSSL 加密数据中获取初始化向量 (iv)