我正在为Apache 2. 我的系统是Ubuntu Server 10.04 LTS。我的 vhost 配置中有以下与 SSL 相关的设置:
SSLEngine On
SSLCertificateKeyFile /etc/ssl/private/server.insecure.key
SSLCertificateFile /etc/ssl/certs/portal.selfsigned.crt
Run Code Online (Sandbox Code Playgroud)
(旁注:我使用.insecure密钥文件是因为该文件不受密码保护,我想清楚地看到它是一个不安全的密钥文件)
因此,当我重新启动 apache 时,我收到以下消息:
Syntax error on line 39 of /etc/apache2/sites-enabled/500-portal-https:
SSLCertificateKeyFile: file '/etc/ssl/private/server.insecure.key' does not exist or is empty
Error in syntax. Not restarting.
Run Code Online (Sandbox Code Playgroud)
但是文件在那里,并且不是空的(实际上它包含一个私钥):
sudo ls -l /etc/ssl/private/server.insecure.key
-rw-r----- 1 root www-data 887 2012-08-07 15:14 /etc/ssl/private/server.insecure.key
sudo ls -ld /etc/ssl/private/
drwx--x--- 2 root www-data 4096 2012-08-07 13:02 /etc/ssl/private/
Run Code Online (Sandbox Code Playgroud)
我尝试使用两个组 www-data 和 ssl-cert 更改所有权。我不确定 Ubuntu 中哪个是正确的:默认情况下 Ubuntu …
鉴于越来越多的安全问题,例如新宣布的针对 SSL/TLS 的浏览器漏洞利用 (BEAST),我很好奇我们如何通过 OpenSSL 和 Apache 启用 TLS 1.1 和 1.2 以确保我们不会受到攻击到此类威胁载体。
我在 2 个 apache 服务器前使用配置为负载均衡器的 apache (2.4) 服务器。当我在负载均衡器和后端之间使用 http 连接时它工作正常,但是使用 https 不起作用。负载均衡器的配置:
SSLProxyEngine on
SSLProxyVerify none
SSLProxyCheckPeerCN off
<Proxy balancer://testcluster>
BalancerMember https://[Backend1]:443/test
BalancerMember https://[Backend2]:443/test
</Proxy>
ProxyPass /test balancer://testcluster
Run Code Online (Sandbox Code Playgroud)
后端目前只有自签名证书,这就是禁用证书验证的原因。
负载均衡器上的错误日志包含以下内容:
[proxy:error] [pid 31202:tid 140325875570432] (502)Unknown error 502: [client ...] AH01084: pass request body failed to [Backend1]:443 ([Backend1])
[proxy:error] [pid 31202:tid 140325875570432] [client ...] AH00898: Error during SSL Handshake with remote server returned by /test/test.jsp
[proxy_http:error] [pid 31202:tid 140325875570432] [client ...] AH01097: pass request body failed to [Backend1]:443 ([Backend1]) from [...] …Run Code Online (Sandbox Code Playgroud) 默认情况下,SSL 证书在 67 个字符后有换行符。我正在尝试使用 Chef 创建 SSL 证书文件。本质上,我想从没有任何换行符的字符串变量中创建整个证书文件。我已经尝试了几次都无济于事(Apache 抱怨无法找到证书)。
我不明白为什么需要在 SSL 证书中换行。如果可以在文件中没有任何换行符的情况下获得证书,有什么想法吗?
在 ubuntu 上的 Apache2 中,我的站点在 80 上侦听,现在我想添加 SSL。有没有办法为端口 443 启用 SSLEngine,这样我就不必复制整个 VirtualHost 块?
当我这样做时:
Listen 80
Listen 443
NameVirtualHost *
<VirtualHost *>
SSLEngine On
... a bunch more lines...
</VirtualHost>
Run Code Online (Sandbox Code Playgroud)
它正在打开端口 80 的 SSLEngine。有没有办法只使用一个 VirtualHost 块,并且只打开端口 443 的 SSLEngine?所以我可以做这样的事情吗?
Listen 80
Listen 443
NameVirtualHost *
<VirtualHost *>
<IfPort 443>
SSLEngine On
</IfPort>
... a bunch of lines I don't want to copy into another VirutalHost block...
</VirtualHost>
Run Code Online (Sandbox Code Playgroud) SSL 证书在大多数台式计算机上受信任,但仅在某些 Android 设备上受信任。但是,即使在证书不受信任的 Android 设备上,也会安装根证书。
我一定尝试了百种方法来解决这个问题,但我认为这与AddTrust 外部 CA 根有关(可能与缺少的SHA-256指纹有关?)。
编辑 1
我相信我已经在我的证书链中包含了新的中间证书,但是 SSL 实验室仍然报告它不存在(即使在单击“清除缓存”按钮之后)。
编辑 2
明确说明我所做的:
我已登录 WHM 并单击“在域上安装 SSL 证书”选项。
我输入了域名“www.angusaustralia.com.au”。
我输入了 IP 地址“27.124.127.2”。
我已经输入了发给我的证书。
-----开始认证----- MIIFnDCCBISgAwIBAgIRAP/vaD7B7JaVJvqC2H7jiDcwDQYJKoZIhvcNAQELBQAw gZMxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpOZXcgSmVyc2V5MRQwEgYDVQQHEwtK ZXJzZXkgQ2l0eTEeMBwGA1UEChMVVGhlIFVTRVJUUlVTVCBOZXR3b3JrMTkwNwYD VQQDEzBVU0VSVHJ1c3QgUlNBIERvbWFpbiBWYWxpZGF0aW9uIFNlY3VyZSBTZXJ2 ZXIgQ0EwHhcNMTYwNjI3MDAwMDAwWhcNMTcwNjI3MjM1OTU5WjCBhzEhMB8GA1UE CxMYRG9tYWluIENvbnRyb2wgVmFsaWRhdGVkMScwJQYDVQQLEx5Ib3N0ZWQgYnkg Q3JhenkgRG9tYWlucyBGWi1MTEMxFTATBgNVBAsTDEVzc2VudGlhbFNTTDEiMCAG A1UEAxMZd3d3LmFuZ3VzYXVzdHJhbGlhLmNvbS5hdTCCASIwDQYJKoZIhvcNAQEB BQADggEPADCCAQoCggEBALbDVHckJORMdY0/ygZqo0jjI02E883VpyL0RCeq7wuI wkCWys3L1v6ZjW45wBEbsYGwpZMV3/IdXYTc5cO5ke4bYnXP4y5NbteVvNOQi1sX FMf8DlpJ+K0ZRcWQVIpsSIRRslXUPw4PWu27Q6Sgp1JuVa2YhXu7hSshIrIhkslT Bx/IL67ZZfwo3wpMoig271yGHT4y1KAz9BfLTqVftL8n7uCKYFj3vo5E44czqSRl wYdQgSOLUc1G7jt33fCV8t+hXbKR0WdutTwdBQfftp2ZCSYwKCgCl3yDSLnqbbI+ 8GdFuLM4c1ZZwbFfJiKSZ5qDBg0IeODgIRdxSDmirDECAweEAAaOCAfMwggHvMB8G A1UdIwQYMBAAFKbB5+H09kdj1y99jZD4uiNPYKyeMB0GA1UdDgQWBBRbjv4H+sED CnGTcCoBdTIGeUPOOjAOBgNVHQ8BAf8EBAMCBaAwDAYDVR0TAQH/BAIwADAdBgNV HSUEFjAUBggrBgEFBQcDAQYIKwYBBQUHAwIwTAYDVR0gBEUwQzA3BgwrBgEEAbIx AQIBAwQwJzAlBggrBgEFBQcCARYZaHR0cHM6Ly9jcHMudXNlcnRydXN0LmNvbTAI BgZngQwBAgEwWAYDVR0fBFEwTzBNoEugSYZHaHR0cDovL2NybC51c2VydHJ1c3Qu Y29tL1VTRVJUcnVzdFJTQURvbWFpblZhbGlkYXRpb25TZWN1cmVTZXJ2ZXJDQS5j cmwwgYoGCCsGAQUFBwEBBH4wfDBTBggrBgEFBQcwAoZhaHR0cDovL2NydC51c2Vy dHJ1c3QuY29tL1VTRVJUcnVzdFJTQURvbWFpblZhbGlkYXRpb25TZWN1cmVTZXJ2 ZXJDQS5jcnQwJQYIKwYBBQUHMAGGGWh0dHA6Ly9vY3NwLnVzZXJ0cnVzdC5jb20w OwYDVR0RBDQwMoIZd3d3LmFuZ3VzYXVzdHJhbGlhLmNvbS5hdYIVYW5ndXNhdXN0 cmFsaWEuY29tLmF1MA0GCSqGSIb3DQEBCwUAA4IBAQCfA2SHg1DtKmHvipfT3REv yowcSTu7/PbKsOAnxdFlnfziKImPJcAwR7PWQoAFAG3pqfk0lGpxkeXN4UhXRs6m MlKKy1xY5H8B4hytCAQDzfZGx0lL4ajeLDsZ439YsHR33abhkf6IieHG412x6PkO csr8NFqevOnxAXkjV4yvfQIPk8sGkzT4rdIlMAS7ZW39wKGe31rYrHFXo1EJqswE mFjMfYtteExXW1e5RqNyecYZ/A8mkJduqiMNvpEzAtDVzKh49bxB4gI97UsIfA9G 4k2KzJarfl+gUFucAIPWEwO2ljXMgOmHCtuTycUmir2KDg5OIDzv7M5snwMVNQs7 -----结束证书-----
我已经输入了私钥(下面未列出)。
我已经输入了以下证书钥匙串(以下有多种组合,但我相信这个“更长”的钥匙串应该可以工作,根据 …
我在 Windows Server 2003 R2 32 位(加上 PHP 5.4.5 和 OpenSSL 1.0.1c,但我认为这并不重要)上运行(实际上试图运行)Apache 2.4.2,并且我得到了错误日志中的以下行:
[Sun Aug 05 11:52:39.546875 2012] [ssl:warn] [pid 5712:tid 348] AH01873: Init: Session Cache is not configured [hint: SSLSessionCache]
Run Code Online (Sandbox Code Playgroud)
尝试连接https://localhost/时出现 102 - 连接被拒绝错误。
令我困惑的是,它SSLSessionCache 是这样配置的:
SSLSessionCache "shmcb:C:/Program Files/Apache Software Foundation/Apache2.4/logs/ssl_scache(512000)"
Run Code Online (Sandbox Code Playgroud)
它与我为 Apache 2.2.17 使用的配置文件完全相同(除了 /Apache2.2 而不是 2.4),它运行得很好。使用 mod_status,我没有得到“SSL/TLS 会话缓存状态”的信息,而我为 Apache 2.2 做。
我不认为这两个httpd-ssl.conf文件有很多区别,主要是路径之间,但似乎它们都可以。
端口 80 上的虚拟服务器运行正常。
我错过了什么?
编辑:对于那些想知道的人来说,这不是当机器无法解析ServerName. Apache 2.2 没有问题,我什至用netstat /flushdns.
我正在尝试使用我网站上的 mod_ssl 模块支持 HTTPS 流量。我正在为我的服务器运行 Amazon EC2 实例。我已经安装并配置了基本的 LAMP 包。然而,当我去把在SSL特定的命令在我的Apache配置文件(即SSLEngine,SSLCertificateFile等),它吐出了一个错误,说我有一个语法错误或没有加载模块。
我的下一步是尝试$ sudo yum install mod_ssl。但是,yum 返回并说:“处理冲突...错误:httpd24-tools 与 httpd-tools 冲突”。所以,我认为 mod_ssl 包含在 httpd-tools 包中。然后我跑了,$ sudo yum install httpd24-tools但它回来告诉我我已经安装了那个包。
现在为什么我安装了 httpd-tools 包,但我的系统中没有加载 mod_ssl?httpd-tools 包中不包含 mod_ssl 吗?我创建了一个测试 php 文件<?php echo phpinfo(); ?>只是为了确保。我的怀疑得到了证实——phpinfo 中的 apache2handler 加载模块表下没有列出“mod_ssl”。
因此,我不确定如何使用 Amazon Linux AMI 加载/安装/配置 mod_ssl。任何帮助,将不胜感激。这是我目前的规格:
运行此命令以设置服务器:
$ sudo yum install httpd24 php54 php54-devel php54-mysql php54-common php54-gd php54-xml …Run Code Online (Sandbox Code Playgroud) 我们有来自 Network Solutions 的网站 SSL 证书。将 Apache/OpenSSL 升级到 2.4.9 版后,我现在在启动 HTTPD 时收到以下警告:
AH02559: The SSLCertificateChainFile directive (/etc/httpd/conf.d/ssl.conf:105) is deprecated, SSLCertificateFile should be used instead
Run Code Online (Sandbox Code Playgroud)
SSLCertificateChainFile 已弃用
SSLCertificateChainFile 在 2.4.8 版中已过时,当时 SSLCertificateFile 被扩展为还从服务器证书文件加载中间 CA 证书。
查找SSLCertificateFile的文档,看起来我只需要将我对SSLCertificateChainFile 的调用替换为SSLCertificateFile调用。
此更改使我的 ssl.conf 从此:
SSLCertificateFile /etc/ssl/STAR.EXAMPLE.COM.crt
SSLCertificateKeyFile /etc/ssl/server.key
SSLCertificateChainFile /etc/ssl/Apache_Plesk_Install.txt
Run Code Online (Sandbox Code Playgroud)
对此:
SSLCertificateFile /etc/ssl/STAR.EXAMPLE.COM.crt
SSLCertificateFile /etc/ssl/Apache_Plesk_Install.txt
SSLCertificateKeyFile /etc/ssl/server.key
Run Code Online (Sandbox Code Playgroud)
......但这不起作用。Apache 只是在没有任何错误消息的情况下拒绝启动。
我不确定在这里还可以尝试什么,因为我对 mod_ssl 或 SSL 证书一般不太熟悉。我记得我们需要为 Internet Explorer添加Apache_Plesk_Install.txt文件才能在我们的站点上没有 SSL 警告,但除此之外 …
我了解了针对 TLS 压缩的CRIME攻击(CVE-2012-4929,CRIME 是针对 ssl 和 tls 的 BEAST 攻击的继承者),我想通过禁用 SSL 压缩来保护我的网络服务器免受这种攻击,它已添加到 Apache 2.2.22(见错误 53219)。
我正在运行 Scientific Linux 6.3,它与 httpd-2.2.15 一起提供。httpd 2.2 上游版本的安全修复应该向后移植到这个版本。
# rpm -q httpd
httpd-2.2.15-15.sl6.1.x86_64
# httpd -V
Server version: Apache/2.2.15 (Unix)
Server built: Feb 14 2012 09:47:14
Server's Module Magic Number: 20051115:24
Server loaded: APR 1.3.9, APR-Util 1.3.9
Compiled using: APR 1.3.9, APR-Util 1.3.9
Run Code Online (Sandbox Code Playgroud)
我在我的配置中尝试关闭 SSLCompression,但这会导致以下错误消息:
# /etc/init.d/httpd restart
Stopping httpd: [ OK ]
Starting httpd: …Run Code Online (Sandbox Code Playgroud) mod-ssl ×10
apache-2.2 ×8
apache-2.4 ×2
openssl ×2
security ×2
ssl ×2
amazon-ec2 ×1
certificate ×1
https ×1
linux ×1
tls ×1
ubuntu ×1
windows ×1