小编jar*_*vis的帖子

来自具有 S3 源的 AWS CloudFront 的文件没有缓存控制标头

我们刚刚迁移到亚马逊 AWS。我们目前有一个运行良好的 EC2 实例。它在前端运行 Nginx,在后端运行 Apache。这也运行良好。所有站点都已正确启动,并包含从 EC2 提供的文件的 Cache-Control 标头。

问题在于我们放置在Amazon S3中的所有静态文件都是通过CloudFront CDN访问的。我们可以正常访问文件(并且 CORS 没有问题),但显然CloudFront 不提供带有 Cache-Control 标头的文件。我们想利用浏览器缓存。

在我看来,EC2 实例在这里不起作用,因为静态文件由 S3+CloudFront 直接提供,请求不会转到 EC2 中的 Web 服务器。

我完全迷失了。

问题:1)在这种情况下如何设置Cache-Control?2)是否可以设置Cache-Control?从 S3 还是 CloudFront?

注意:我在 Google 中找到了几个页面,您可以在其中为单个对象设置 S3 中的 Header。这真的不是一种特别有效的方法,因为在我的情况下,我们正在谈论几个对象。

谢谢!

cache amazon-s3 cdn amazon-cloudfront amazon-web-services

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

Let's Encrypt SSL Certificate File Not Found 错误,但仍然有效

我正在运行Let's Encrypt 的SSL 证书。我已经在运行 Apache 的 Ubuntu 机器上安装了它们。设置工作正常,我可以启动网站,看到绿色挂锁,甚至在 SSL Labs 上获得了 A+。

问题是,当我执行apachectl configtest 时,服务器会返回一个找不到文件的错误:

SSLCertificateFile: file '/etc/letsencrypt/live/www.example.com/fullchain.pem' not exist or is empty.
Run Code Online (Sandbox Code Playgroud)

sudo service apache2 restart工作得很好。

我在Let's Encrypt Community遇到了这个问题,但问题尚未解决。

sudo cat /etc/letsencrypt/live/www.example.com/fullchain.pem 有效,返回有效的证书详细信息。

sudo x509 -text -noout -in /etc/letsencrypt/live/www.example.com/fullchain.pem
Run Code Online (Sandbox Code Playgroud)

不起作用并返回以下错误:

Error opening Certificate /etc/letsencrypt/live/www.example.com/fullchain.pem
139774254929568:error:02001002:system library:fopen:No such file or directory:bss_file.c:398:fopen('/etc/letsencrypt/live/www.example.com/fullchain.pem.','r')
139774254929568:error:2007402:BIO routines:FILE_CTRL:system lib:bss_file.c:400:
ubable to load certificate
Run Code Online (Sandbox Code Playgroud)

关于为什么我在apachectl configtestopenssl上遇到错误的任何想法?

谢谢你们!

ssl ssl-certificate apache-2.4 lets-encrypt

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

Amazon EC2 公共 IP 与公共 DNS

我们有一个在亚马逊上运行的 EC2。它有一个公共 IP公共 DNS

我们通过为 www.example.com 创建 A 记录在我们的域记录中使用公共 IP。然后该站点变得可访问。如果我们使用公共 DNS,我们将使用 CNAME 而不是 A 记录。

我的问题是关于两者的技术性和功能性。一个比另一个有优势吗?

domain-name-system amazon-ec2 amazon-web-services

6
推荐指数
1
解决办法
2426
查看次数

GMail 中域为空的 DKIM 失败

DKIM: FAIL with domain null在 GMail 中遇到错误。当我在 GMail 中查看原始文件时,我得到dkim=fail header.i=@example.com;.

在我的 DNS 中,我有以下 TXT 记录:

DMARC TXT 条目:_dmarc v=DMARC1;p=reject;sp=reject;rf=afrf;pct=100;ruf=mailto:authfail@example.com;rua=mailto:mailreport@example.com;ri=86400

SPF TXT 条目:example.com

v=spf1 +a +mx +ip4:70.xxx.xxx.xxx +ip4:71.xxx.xxx.xxx +ip4:72.xxx.xxx.xxx ~all
Run Code Online (Sandbox Code Playgroud)

DKIM TXT 条目:_default._domainkey

v=DKIM1; k=rsa; p=MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAo/HYr74H9Ty6HjTpjawYIfiDa7kOPx+0GJiw4rw7IYkfvrfrLojmGLuS4lg3NbIqYmLg9Ziz77q9vVT15ftrFB1+lTz6+Ei19b6AM8FGCJoDWRHRwB+YN0InJaFs/kPfy1SktqQI8TntPNfH2+tTOUrIT1gi8fjwSnfSkUsbNuSpIp3XrAU6pYzEjXF2h1A3UMFV+7+jLRzEvunj2YCsJ3vaifTihat+Nsw7eP5L2iAzW8b0joP3z6k/UkhUa7/35oNC4Xn1dY532irsBunMJz9QsBxIaNpepiZZkTxfglsq2RP4FWGZbiVFRDDcvsnpi4kFx3eAQtAoo+szLA70FQIDAQAB
Run Code Online (Sandbox Code Playgroud)

我通过https://www.mail-tester.com/spf-dkim-checkhttp://dkimcore.org/tools/keycheck.html测试了我的记录,并全部检查出来。公钥是 2048 位。我读到 GMail 使用较小的密钥使 DKIM 失败。

我还使用http://unlocktheinbox.com和 DKIM Validation Check 对其进行了测试,它说:

Signature Found:    Yes
SmarterMail DKIM Test:  Failed - Bad Signature
MailBee.NET DKIM Test:  Failed - SignatureInvalid
Run Code Online (Sandbox Code Playgroud)

GMail 似乎对我的 …

domain-name-system email gmail dkim

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

使用 Nginx 提高 SSL 性能

我们的系统前面有 Nginx,后面有 Apache 代理。我们使用 SSL/TLS 进行连接。

题:

  1. 就性能/SSL 握手而言,Nginx 是终止 SSL/TLS 连接的最佳选择吗?
  2. 我是否进行了所有需要的性能调整?我还能改进我的代码吗?

这是我的配置:

ssl_certificate /path/ssl.crt; 
ssl_certificate_key /path/ssl.key;
ssl_dhparam /path/dh.pem;
ssl_buffer_size 4k;
ssl_session_timeout 4h;
ssl_session_cache shared:SSL:20m;
ssl_session_tickets on;
ssl_trusted_certificate /path/trust.crt;
ssl_stapling on;
ssl_stapling_verify on;
resolver 8.8.8.8 8.8.4.4 valid=300s;
resolver_timeout 5s;
Run Code Online (Sandbox Code Playgroud)

我使用Mozilla SSL 配置生成器在下面生成我的密码。

ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
ssl_ciphers 'ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA256:ECDHE-ECDSA-AES128-SHA:ECDHE-RSA-AES256-SHA384:ECDHE-RSA-AES128-SHA:ECDHE-ECDSA-AES256-SHA384:ECDHE-ECDSA-AES256-SHA:ECDHE-RSA-AES256-SHA:DHE-RSA-AES128-SHA256:DHE-RSA-AES128-SHA:DHE-RSA-AES256-SHA256:DHE-RSA-AES256-SHA:ECDHE-ECDSA-DES-CBC3-SHA:ECDHE-RSA-DES-CBC3-SHA:EDH-RSA-DES-CBC3-SHA:AES128-GCM-SHA256:AES256-GCM-SHA384:AES128-SHA256:AES256-SHA256:AES128-SHA:AES256-SHA:DES-CBC3-SHA:!DSS';
ssl_prefer_server_ciphers on;
Run Code Online (Sandbox Code Playgroud)

密码是为了适应大多数浏览器。我也设置了Strict-Transport-Security

我们的系统使用 CloudFront 在 Amazon AWS 上运行。目前,SSL Labs 需要大约 130 秒来运行测试。Pingdom 显示一个请求SSL 连接至少需要220ms

谢谢!

performance ssl nginx amazon-web-services

5
推荐指数
1
解决办法
1094
查看次数

Samba TLS 设置

我正在阅读这个Samba 手册页,根据这个,你可以设置 TLS。我有2个问题。

  1. 在服务器端,TLS 选项需要证书和密钥的路径吗?
  2. 这将如何在客户端工作?我如何才能看到它会与 TLS 协商?它不像在 Web 浏览器中那样显示绿色挂锁。

我们有几台 Windows 机器,我们在 Ubuntu 14.04 上运行 Samba 来共享文件。当前运行 Samba 版本 4.3.9。

ubuntu encryption samba tls

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

Samba/CIFS Ubuntu 14.04挂载错误(112)

我正在尝试使用 cifs 在 Ubuntu 14.04 上安装 samba 网络共享。

在服务器上,我已经运行了共享。我已经可以将其映射为 Windows 中的驱动器。该共享有用户名和密码。

在 ubuntu 机器上,我找到了/etc/samba/user保存凭据的位置。我还有要挂载共享的目录/mounthere

我在/etc/fstab上有这个

//192.168.1.1/sharename /mounthere cifs credentials=/etc/samba/user 0 0

当我这样做时,sudo mount -a我收到此错误:

mount error(112): Host is down
Run Code Online (Sandbox Code Playgroud)

楼主没挂啊 我已经在 Windows 上运行了。我已经仔细检查了凭据和可能的防火墙问题。

我还安装了cifs-utils

任何人都可以指出我正确的方向吗?

谢谢你!

ubuntu filesystems samba cifs ubuntu-14.04

4
推荐指数
1
解决办法
4495
查看次数

421 使用 HTTP/2 和 SAN SSL 的错误定向请求

我在 Ubuntu 上运行 Apache 2.4.20,并且配置了 SSL。我有一个SAN SSL 证书www.example.comwww2.example.com共享同一个证书。

当我包含以下内容时,我收到421 Misdirected Request错误:

Protocols h2 h2c http/1.1
H2Upgrade on
H2Direct
H2WindowSize 128000
Run Code Online (Sandbox Code Playgroud)

如果我删除它们,网站会正常运行。

如果在同一浏览器上打开www.example.comwww2.example.com,我会收到错误消息。如果我先访问www.example.com,它将正确加载。当我从该 SAN SSL 证书加载第二个站点时出现错误,例如www2.example.com。我先去哪个网站并不重要。它总是在第二个站点上响应421 Misdirected Request

我使用 HTTP/2 指令有什么问题?(顺便说一下,它们在 VirtualHost 中)

或者 HTTP/2 和 SAN SSL 实施是否存在问题?

如果重要的话,www.example.com 和 www2.example.com 都位于 AWS 中托管的同一台服务器上。

谢谢。

编辑:

我还尝试了以下设置,结果相同。

Protocols h2 http/1.1
H2Direct
H2WindowSize 128000
Run Code Online (Sandbox Code Playgroud)

在 SSL 配置中

<IfModule mod_ssl.c>

    SSLRandomSeed startup …
Run Code Online (Sandbox Code Playgroud)

ssl https amazon-web-services apache-2.4 ubuntu-14.04

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