标签: openssl

如何在没有 SSL 证书的情况下运行虚拟主机 443?

我有一个 virtualhost 指令,如果输入无效的子域,它会提供自定义 404 错误:

<VirtualHost *:80> # the first virtual host
  ServerName site_not_found
  RedirectMatch 404 ^/(?!custom_error)
</VirtualHost>

<VirtualHost *:80>
  ServerName example.com
  ServerAlias ??.example.com
</VirtualHost>
Run Code Online (Sandbox Code Playgroud)

我想设置一个虚拟主机以通过 HTTPS 连接显示相同的自定义错误。我尝试了以下方法:

<VirtualHost *:443> # the first virtual host
  ServerName site_not_found
  RedirectMatch 404 ^/(?!custom_error)
</VirtualHost>

<VirtualHost *:443>
  ServerName example.com
  ServerAlias ??.example.com
# SSL options, other options, and stuff defined here.
</VirtualHost>
Run Code Online (Sandbox Code Playgroud)

但是服务器不会启动并发出错误:

服务器应该是 SSL-aware 但没有配置证书 [提示:SSLCertificateFile] ((null):0)

即使没有为这个虚拟主机打开 SSLEngine,似乎也需要 SSL 证书。除了提供证书之外,还有没有办法解决这个问题?关闭模块不是一个选项,因为我需要为虚拟服务器 example.com 使用 SSL。

ssl https mod-ssl openssl apache-2.2

3
推荐指数
1
解决办法
1万
查看次数

OpenSSL 握手失败

我们最近被迫将我们的生产云服务器从 GoDaddy 迁移到 Azure,因为 GoDaddy 正在终止他们的云服务器服务。

我们的一台服务器是运行 JasperReports Bitnami 堆栈的 CentOS 5.7。在迁移过程中,我将所有服务器升级到最新的发行版,并从 Ubuntu 12.04LTS 上的 Azure Bitnami Jasper 映像重建 Jasper

A 在 JasperServer 上安装了 SSL 证书并正常工作

所有新服务器都运行良好,现在问题出在哪里。

我们还在 GoDaddy 上有一个专用的 CentOS 5.8 虚拟服务器(目前),该服务器上有一系列站点,它们通过 Soap 提供来自 Jasper 的报告。

但是,尝试连接时出现握手失败

#openssl s_client -connect newjasperserver.com:443
CONNECTED(00000003)
9092:error:14077410:SSL routines:SSL23_GET_SERVER_HELLO:sslv3 alert handshake failure:s23_clnt.c:583:
Run Code Online (Sandbox Code Playgroud)

和:

#openssl version
OpenSSL 0.9.8e-fips-rhel5 01 Jul 2008
Run Code Online (Sandbox Code Playgroud)

新服务器正在运行:

#openssl version
OpenSSL 1.0.1c 10 May 2012
Run Code Online (Sandbox Code Playgroud)

现在经过大量研究,似乎 OpenSSL < 0.9.8k 和 OpenSSL 1.0.1 之间存在不兼容。

我确定的选项是:

  1. 将服务器迁移到Azure上的CentOS 6.4服务器(理想,但政治上困难,不要问为什么)

  2. 就地升级服务器(不支持,我不想在生产服务器上尝试)

  3. 擦除服务器并使用 6.4 重建它(可能性,但如果我这样做,我将强制选项 1) …

linux openssl centos5

3
推荐指数
1
解决办法
1万
查看次数

ssl证书可以修改吗?

有没有办法修改ssl证书?我不想更改与身份验证相关的任何部分,只想更改一些周围的数据,例如IssuerX509v3 Key Usage。是否有任何工具可以获取现有证书和字段的新值,并输出经过修改的相同证书?或者是从头开始生成新证书并在其中包含修改的唯一解决方案?

openssl ssl-certificate

3
推荐指数
1
解决办法
165
查看次数

是否可以在 openssl 生成的 CSR 中包含私钥?

我在 linux 上使用 openssl 生成证书签名请求 (CSR),该请求将提交给已配置为存档私钥的 Windows 证书服务证书颁发机构。

不幸的是,我无法弄清楚如何使用 openssl 生成包含私钥的 CSR,以便 CA 可以颁发我的证书并存档私钥。

编辑:基于此Microsoft 文档,看起来我正在尝试使用 CMC 格式生成 CSR,这允许私钥与存档请求“一起”。

从该链接:

证书请求使用的格式之一是证书请求的 CMC 格式,它支持可选的加密数据负载。这是使用私钥存档的证书请求所需的格式。从技术上讲,任何支持 CMC 协议的客户端都可以向企业 CA 注册并请求由 CA 存档私钥。

更多发现:

这两个链接()的组合是您使用 Microsoft 的 certreq 实用程序的方式。我已经测试过它并且有效。如果可能的话,我想用 openssl 来做到这一点。

openssl ad-certificate-services

3
推荐指数
1
解决办法
818
查看次数

Openssl 自定义扩展

我知道如何使用 openssl 命令行创建 x509 证书。但现在我想用自定义扩展创建一个。如何使用 openssl 命令行执行此操作?

command-line-interface openssl x509

3
推荐指数
1
解决办法
1万
查看次数

为什么需要为证书创建符号链接?

除了注意到这样的事情:

yourid@linuxtpf:~/certificates> ls -l
lrwxrwxrwx  1 yourid users   9 2009-04-07 18:06 50a694ac.0 -> cert2.pem #<-- was missing
lrwxrwxrwx  1 yourid users   9 2009-04-07 18:06 5170a0d9.0 -> cert3.pem #<-- was missing too...
-rw-------  1 yourid users 756 2009-04-07 18:02 cert2.pem
-rw-------  1 yourid users 747 2009-04-07 18:02 cert3.pem
Run Code Online (Sandbox Code Playgroud)

在我的服务器中丢失了,并且在添加它们之后修复了在 LDAP 连接过程中的 ldap_bind 阶段失败的 LDAPS 连接。

到底发生了什么,为什么我需要通过运行以下命令为 CAPATH 创建符号链接

yourid@linuxtpf:~/certificates> c_rehash /home/yourid/certificates

ldap openssl certificate-authority

3
推荐指数
2
解决办法
5199
查看次数

如何使用以前 CSR 的数据创建新的 CSR?

我需要为大约 30 个客户重新颁发 SSL 证书。我希望有一种简单的方法来获取他们当前 CSR 的内容,将它们导入openssl req -new ...并生成一组全新的 CSR 和新密钥。我在 openssl 手册页上看到您可以执行openssl x509 -x509toreq -in cert.pem -out req.pem -signkey key.pem此操作,但这需要已经创建了 key.pem。

除了查看每个单独证书的内容并将复制粘贴到新请求之外,任何人都可以帮助解决此问题吗?

谢谢!

linux openssl csr

3
推荐指数
1
解决办法
979
查看次数

如果我从源 tarball 安装了 Apache,如何删除它?

我从源 tar 安装了 Apache 2.4,在解压目录的 makefile 中似乎没有“make deinstall”或“make uninstall”选项。
如何从系统中删除已安装的 Apache 服务器?

系统为FreeBSD;我避免使用端口,因为安装是针对 OpenSSL 较低版本的测试服务器。

freebsd openssl apache-2.4

3
推荐指数
1
解决办法
2916
查看次数

Ansible - 尝试 ping 本地主机和远程服务器之间的连接

我是 Ansible 的初学者,我正在努力学习它。我使用 ansible 文档入门,但遇到了阻止我的问题。当我尝试使用以下命令时,我的问题依赖于此:

sudo ansible all -m ping -vvvv
Run Code Online (Sandbox Code Playgroud)

我遇到了奇怪的错误,坦率地说,我不明白。我试图在谷歌中理解这条消息,但这是一项非常艰巨的任务。错误如下。

[user@host ~]$ sudo ansible all -m ping -vvvv
<MY_SUPER_HOST> ESTABLISH CONNECTION FOR USER: root
<MY_SUPER_HOST> REMOTE_MODULE ping
<MY_SUPER_HOST> EXEC ['ssh', '-C', '-tt', '-vvv', '-o', 'ControlMaster=auto', '-o', 'ControlPersist=60s', '-o', 'ControlPath=/root/.ansible/cp/ansible-ssh-%h-%p-%r', '-o', 'StrictHostKeyChecking=no', '-o', 'Port=22', '-o', 'KbdInteractiveAuthentication=no', '-o', 'PreferredAuthentications=gssapi-with-mic,gssapi-keyex,hostbased,publickey', '-o', 'PasswordAuthentication=no', '-o', 'ConnectTimeout=10', 'MY_SUPER_HOST', "/bin/sh -c 'mkdir -p $HOME/.ansible/tmp/ansible-tmp-1417877385.11-43678842543199 && echo $HOME/.ansible/tmp/ansible-tmp-1417877385.11-43678842543199'"]
MY_SUPER_HOST | FAILED => SSH encountered an unknown error. The output was:
OpenSSH_6.4, OpenSSL 1.0.1e-fips 11 …
Run Code Online (Sandbox Code Playgroud)

ssh openssl ansible

3
推荐指数
1
解决办法
9063
查看次数

用最新的 openssl 和 curl 编译 php

我正在尝试使用最新的 curl 和 openssl (1.0.1l) 编译 php 5.4.36,我已将 openssl 编译到一个单独的文件夹中

我的系统是 CentOS。

当我尝试编译 php 时

./configure  ...etc... --with-curl=/usr/local/curlfolder --with-openssl=/usr/local/opensslfolder
Run Code Online (Sandbox Code Playgroud)

我收到此错误:

checking whether to enable FTP support... yes
checking OpenSSL dir for FTP... /usr/local/opensslfolder
checking for pkg-config... /usr/bin/pkg-config
configure: error: Cannot find OpenSSL's libraries
Run Code Online (Sandbox Code Playgroud)

curl 和 openssl 都编译没有任何问题

php openssl curl

3
推荐指数
1
解决办法
2万
查看次数