我有一个 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。
我们最近被迫将我们的生产云服务器从 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 之间存在不兼容。
我确定的选项是:
将服务器迁移到Azure上的CentOS 6.4服务器(理想,但政治上困难,不要问为什么)
就地升级服务器(不支持,我不想在生产服务器上尝试)
擦除服务器并使用 6.4 重建它(可能性,但如果我这样做,我将强制选项 1) …
有没有办法修改ssl证书?我不想更改与身份验证相关的任何部分,只想更改一些周围的数据,例如Issuer或X509v3 Key Usage。是否有任何工具可以获取现有证书和字段的新值,并输出经过修改的相同证书?或者是从头开始生成新证书并在其中包含修改的唯一解决方案?
我在 linux 上使用 openssl 生成证书签名请求 (CSR),该请求将提交给已配置为存档私钥的 Windows 证书服务证书颁发机构。
不幸的是,我无法弄清楚如何使用 openssl 生成包含私钥的 CSR,以便 CA 可以颁发我的证书并存档私钥。
编辑:基于此Microsoft 文档,看起来我正在尝试使用 CMC 格式生成 CSR,这允许私钥与存档请求“一起”。
从该链接:
证书请求使用的格式之一是证书请求的 CMC 格式,它支持可选的加密数据负载。这是使用私钥存档的证书请求所需的格式。从技术上讲,任何支持 CMC 协议的客户端都可以向企业 CA 注册并请求由 CA 存档私钥。
更多发现:
这两个链接(一、二)的组合是您使用 Microsoft 的 certreq 实用程序的方式。我已经测试过它并且有效。如果可能的话,我想用 openssl 来做到这一点。
我知道如何使用 openssl 命令行创建 x509 证书。但现在我想用自定义扩展创建一个。如何使用 openssl 命令行执行此操作?
除了注意到这样的事情:
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
我需要为大约 30 个客户重新颁发 SSL 证书。我希望有一种简单的方法来获取他们当前 CSR 的内容,将它们导入openssl req -new ...并生成一组全新的 CSR 和新密钥。我在 openssl 手册页上看到您可以执行openssl x509 -x509toreq -in cert.pem -out req.pem -signkey key.pem此操作,但这需要已经创建了 key.pem。
除了查看每个单独证书的内容并将复制粘贴到新请求之外,任何人都可以帮助解决此问题吗?
谢谢!
我从源 tar 安装了 Apache 2.4,在解压目录的 makefile 中似乎没有“make deinstall”或“make uninstall”选项。
如何从系统中删除已安装的 Apache 服务器?
系统为FreeBSD;我避免使用端口,因为安装是针对 OpenSSL 较低版本的测试服务器。
我是 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) 我正在尝试使用最新的 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 都编译没有任何问题