我刚刚注意到(通过一些在线检查工具)我的邮件服务器可能允许 SSLv3 并更新了我的配置。
我在 Postfix 2.11.2 中的当前配置:
# inbound
smtpd_tls_security_level = may
smtpd_tls_mandatory_protocols = !SSLv2 !SSLv3
# outbound
smtp_tls_security_level = may
smtp_tls_mandatory_protocols = !SSLv2 !SSLv3
Run Code Online (Sandbox Code Playgroud)
不幸的是,这些工具一直说 SSLv3 已被接受。
如何将所需的(nginx)配置转换为 Postfix(入站和出站)配置?
使用 Debian/7、Postfix/2.11.2、OpenSSL/1.0.1e
我想强制使用一组自己的 TLS 密码套件,而不是使用内置的 Postfix。
我想要的一组密码是(取自 nginx 配置):
ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:DHE-DSS-AES128-GCM-SHA256:kEDH+AESGCM:ECDHE-RSA-AES128-SHA256:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA:ECDHE-ECDSA-AES128-SHA:ECDHE-RSA-AES256-SHA384:ECDHE-ECDSA-AES256-SHA384:ECDHE-RSA-AES256-SHA:ECDHE-ECDSA-AES256-SHA:DHE-RSA-AES128-SHA256:DHE-RSA-AES128-SHA:DHE-DSS-AES128-SHA256:DHE-RSA-AES256-SHA256:DHE-DSS-AES256-SHA:DHE-RSA-AES256-SHA:AES128-GCM-SHA256:AES256-GCM-SHA384:AES128-SHA256:AES256-SHA256:AES128-SHA:AES256-SHA:AES:CAMELLIA:DES-CBC3-SHA:!aNULL:!eNULL:!EXPORT:-DES:!RC4:!MD5:!PSK:!aECDH:EDH-DSS-DES-CBC3-SHA:!EDH-RSA-DES-CBC3-SHA:!KRB5-DES-CBC3-SHA
Run Code Online (Sandbox Code Playgroud)
不幸的是,我找不到覆盖密码套件的参考。我发现通知说这是可能的,但不是如何。
怎么看起来像等价Postfix配置smtp和smtpd?
使用 Debian/7、Postfix/2.11.2、OpenSSL/1.0.1e
在 /etc/ssl 中,当我这样做时,sudo openssl verify mywebsite.pem 我收到一条消息,说明
mywebsite.pem: OU = GT46830179, OU = See www.rapidssl.com/resources/cps (c)15, OU = Domain Control Validated - RapidSSL(R), CN = *.logitapp.com
error 20 at 0 depth lookup:unable to get local issuer certificate
Run Code Online (Sandbox Code Playgroud)
我通过从 sslpoint 的证书生成器复制到 nano 来创建 mywebsite.key。我通过运行创建了 mywebsite.pem sudo cat mywebsite.crt sslpointintermediate.crt >> mywebsite.pem。通过将sslpoint发送给我的电子邮件粘贴到 nano 中,创建了 mywebsite.crt 和 sslpointintermediate.crt 。
mywebsite.pem 和 mywebsite.key 实际上不是文件的名称。
使用 Debian 8。试图让 nginx 和 gunicorn 与 ssl 一起工作。有问题,我认为这是(至少部分)因为 ssl 证书以某种方式没有正确安装,如上面的输出所示。我该如何解决这个问题?
编辑:
在此问题的先前版本中,我还询问了“openssl 验证”.key 文件。我已经删除了问题的那部分,因为尝试这样做没有意义。
要为Apache生成 SSL 证书文件,我使用以下命令:
openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout /etc/apache2/ssl/apache.key -out /etc/apache2/ssl/apache.cert
Run Code Online (Sandbox Code Playgroud)
我用这些参数手动输入它:
Country Name(2 个字母代码)[AU]:AU
州或省名称(全名):Myname
[Some-State]:Some-State 地区
名称(例如,城市)[]:城市
组织名称(例如,公司)[互联网Widgits私人有限公司]:互联网
组织单位名称(例如,部分)[]:科
通用名称(如服务器FQDN或您的姓名)[]:提供yourname
电子邮件地址[]:email@gmail.com
是否可以使用选项从文件或直接从 OpenSSL 命令行输入它们?
OpenSSL 手册页中没有提示。
我有一个带有 LE 证书的主机,它在浏览器中运行良好,但我仍然无法使用curl, openssl, wget, POST(libwww-perl) 进行连接:
卷曲
# curl -v -3 https://example.com/
* Hostname was NOT found in DNS cache
* Trying 123.123.123.123...
* Connected to example.com (123.123.123.123) port 443 (#0)
* successfully set certificate verify locations:
* CAfile: none
CApath: /etc/ssl/certs
* SSLv3, TLS handshake, Client hello (1):
* Unknown SSL protocol error in connection to example.com:443
* Closing connection 0
Run Code Online (Sandbox Code Playgroud)
openssl
# openssl s_client -connect example.com:443
CONNECTED(00000003)
write:errno=104
---
no peer certificate …Run Code Online (Sandbox Code Playgroud) 我正在编写一个脚本来检查SSL我所有域的到期日期。
这适用于我的普通网站:
echo | openssl s_client -connect $domain:443 2> /dev/null | openssl x509 -noout -enddate
但是它并没有为工作AWS CloudFront。我已将自己的证书上传到CF并正在使用CNAME.
输出是:
CONNECTED(00000003)
15336:error:14077410:SSL routines:SSL23_GET_SERVER_HELLO:sslv3 alert handshake failure
Run Code Online (Sandbox Code Playgroud)
有谁知道为什么?
我已经尝试过-ssl2和-no_ssl3选项。
我在运行 Centos 5.11 的服务器上运行一个网站 - 现在我知道 EOL,但暂时无法升级。该网站运行与 Paypal 集成的 Sellerdeck 软件进行支付。
在接下来的一个月左右,Paypal 将要求我使用 TLS 1.2 [1] 来连接它们,而 5.11 (0.9.8b) 中安装的默认 OpenSSL 版本不支持该版本。
我已按照说明 [2] 安装第二个版本的 OpenSSL,以及链接到新版本 OpenSSL 的第二个 Curl 版本,它将支持 TLS 1.2,但它仍然没有通过 Paypal 测试。
Centos 5.11 在 /usr/local/ 中带有 OpenSSL 1.0.2k:
/usr/local/bin/curl https://tlstest.paypal.com
curl: (35) Unknown SSL protocol error in connection to tlstest.paypal.com:443
Run Code Online (Sandbox Code Playgroud)
Centos 6.9 与 OpenSSL 1.0.1e-fips
curl https://tlstest.paypal.com
PayPal_Connection_OK
Run Code Online (Sandbox Code Playgroud)
任何人都可以帮助我指出正确的方向,为什么连接不能与更新的 OpenSSL 一起使用?
非常感谢
凯文
详细的非工作输出:
/usr/local/bin/curl -Ivvv https://tlstest.paypal.com
* Rebuilt URL …Run Code Online (Sandbox Code Playgroud) 在 Windows 2012 R2 和 Windows 10 机器上,有一个 pfx 文件,其中包含服务器的证书链。我使用 Windows MMC 证书导出工具创建了这个文件。如果可能,选择是导出链中的所有证书或仅导出一个证书。该链包含根、两个中介和我的服务器证书。
我想删除 CA 根证书,因为客户端应该已经拥有它,但保留中间证书。
如何编辑 pfx 文件以删除一个根证书?
我正在尝试更新我的 apache2(Apache/2.4.29 (Debian 8))服务器以支持,http2
但在使用以下代码启用 http2 后,由于mpm_prefork不支持而无法正常工作http2
<IfModule http2_module>
ProtocolsHonorOrder On
Protocols h2 h2c http/1.1
</IfModule>
Run Code Online (Sandbox Code Playgroud)
由于mpm_preforkapache (2.4.29) 不适用于http2,我尝试使用 mpm_event/mpm_worker
但它不起作用,所以我启用mpm_prefork
sudo a2dismod mpm_event
sudo a2dismod mpm_worker
sudo a2enmod mpm_prefork
Run Code Online (Sandbox Code Playgroud)
由于我仍在运行,php5
我应该怎么做才能在 Debian8 上获得 http2 支持?我是否必须将 php5 更新为 php7?是否有任何解决方法可以将 mpm_worker/mpm_event 与具有 http2 支持的 php5 一起使用?
阿帕奇错误日志
[http2:warn] [pid 11992] AH10034: The mpm module (prefork.c) is not supported by mod_http2. The mpm determines how things are processed …Run Code Online (Sandbox Code Playgroud) 一台服务器使用多个域名时,如何获取请求中当前使用的域名?我在它的配置文件中使用了 Nginx 的嵌入变量。
我已经设置了 OpenSSL 并且有一个可以很好地用于我的第一个域的重定向,因为正如你所看到的,我在我的配置文件的底部明确地重定向到它。因此,任何其他域上的 HTTP 请求都会重定向到第一个域以进行安全连接。是否有我可以使用的嵌入变量$request_uri,例如类似于,但只返回客户端使用的给定域名?
这是我运行重定向的服务器块。
server {
listen 80;
listen [::]:80;
server_name example.com example1.com example2.com example3.com;
location / {
return 301 https://example.com$request_uri;
}
}
Run Code Online (Sandbox Code Playgroud)
我的其余配置:https : //pastebin.com/HgnZ0aBe
openssl ×10
ssl ×6
apache-2.4 ×3
curl ×2
postfix ×2
tls ×2
centos5 ×1
certificate ×1
debian ×1
http ×1
http2 ×1
https ×1
installation ×1
lets-encrypt ×1
nginx ×1
php5 ×1
security ×1
starttls ×1
ubuntu ×1
ubuntu-14.04 ×1
windows ×1