在一个小型的非商业网站上,我使用的是来自Start SSL的免费 Class 1 证书。没有通过网络传输的敏感数据,但我确实觉得我想为浏览该站点的任何人提供至少最低限度的隐私。在 Firefox 中访问该站点时,会收到“不受信任的证书”警告。这是一个使用示例wget:
$ wget https://example.com/images/dog.jpg
--2013-08-09 15:21:10-- https://example.com/images/dog.jpg
Resolving example.com (example.com)... 54.43.17.16
Connecting to example.com (example.com)|54.43.17.16|:443... connected.
ERROR: The certificate of `example.com' is not trusted.
ERROR: The certificate of `example.com' hasn't got a known issuer.
Run Code Online (Sandbox Code Playgroud)
StartSSL的FAQ 条目指出,为了避免警告,必须将中间 CA 证书安装到浏览器。期望所有网站访问者都这样做有点不合理!
我不介意安装大公司的证书,但在研究情况时,我发现大公司也有同样的问题。另一个很好的 ServerFault 问题提到服务器管理员应该安装一个中间证书,但我不确定是否存在用于启动 SSL 的中间证书。在搬到另一家公司之前,我怎么知道他们是否拥有我们需要的所有适当的中间证书?正如前两个链接问题所示,即使使用 Verisign 或 GoDaddy 也可能无法解决问题。
这是在 Amazon Web Services 上运行的传统 LAMP 堆栈(Ubuntu Server 12.04、Apache 2.2)。
我知道使用 SSL 保护所有页面会减慢网站速度并增加服务器资源的开销。
我还看到许多其他网站只保护他们的登录和注册页面,我也想在运行 apache 的服务器上这样做。
为什么只保护输入用户密码的页面而不是整个站点被认为是不好的做法?
另外,https://mysite.com/login.php我应该以这种方式更改为 https ,而不是使用类似的东西:https://secure.mysite.com/login.php?
所以我刚刚从 Digicert 获得了我的证书,并且由于 /etc/ssl/ 中有其他未使用的/旧文件,我标记并删除了,并且不小心也删除了 localhost.crt。
现在我无法启动我的网络服务器(只有没有 SSL)。我如何重新创建这个 localhost.crt 文件?我是否需要制作一个新密钥并从 digicert 重新颁发我的证书?
我有一个刚从 Godaddy 购买的标准 SSL 证书。现在它不会让我使用通配符来为我的域颁发证书。它说 * 通配符不包含在我的产品中。这意味着我只能保护一个域,例如subdomain.example.com.
现在我的问题是,如果我获得了为 颁发的证书subdomain.example.com,它是否subdomain2.subdomain.example.com也对 有效?
这是一个学校网络。
官方(外部可访问域名)是 bgschwechat.ac.at(www.bgschwechat...、mail.bgschwechat... 和 ftp.bgschwechat...)
在内部,windows 域被命名为 bgs.ac.at
我们需要(可能很便宜)用于 Webserver 和 Exchange-Server 的 SSL 证书
从我们的防火墙 (www.bgschwechat.ac.at) (Sophos UTM9) 请求被 NAT 转换到虚拟机 - 其中一些需要 SSL
我的问题:我们需要保护什么样的 SSL 证书,例如。两个域(bgschwechat.ac.at 和 bgs.ac.at),以便它们在 NATTING 时从外部看起来是安全的,例如 mail.bgschwechat.ac.at 到 xch.bgs.ac.at ?
还是需要将内部域名重命名为官方域名?
...建议在哪里购买此类证书?
我正在使用以下内容在我的主网站上强制使用 HTTPS。
### Force SSL
RewriteCond %{HTTPS} !=on
RewriteRule ^ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
Run Code Online (Sandbox Code Playgroud)
如果你想查看完整的 htaccess 文件,我把它放在下面:
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
### Blacklist via Referrers
RewriteCond %{HTTP_REFERER} removed\.net [NC,OR]
RewriteCond %{HTTP_REFERER} removed\.com [NC,OR]
RewriteCond %{HTTP_REFERER} removed\.removed\.com [NC,OR]
RewriteCond %{HTTP_REFERER} removed\.com [NC,OR]
RewriteCond %{HTTP_REFERER} removed\.net [NC,OR]
RewriteCond %{HTTP_REFERER} removed\.sx [NC,OR]
RewriteCond %{HTTP_REFERER} removed\.com [NC,OR]
RewriteCond %{HTTP_REFERER} removed\.com [NC,OR]
RewriteCond %{HTTP_REFERER} removed\.com [NC,OR]
RewriteCond %{HTTP_REFERER} removed\.com [NC,OR]
RewriteCond %{HTTP_REFERER} removed\.org [NC]
RewriteRule ^(.*)$ - [F,L]
### Force SSL
#RewriteCond %{HTTPS} !=on
#RewriteRule …Run Code Online (Sandbox Code Playgroud) 我将服务器从 Wheezy 升级到 Jessie,Apache 2.4 停止工作......
特别是在端口 443 上没有 ssl ....
telnet myhost 443
GET https://myhost
<html><meta http-equiv='Content-Type' content='text/html; charset=utf-8'/><body>Something in /var/www/html/index.html</body></html>>Connection closed by foreign host.
Run Code Online (Sandbox Code Playgroud)
它应该是:
<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
<html><head>
<title>400 Bad Request</title>
</head><body>
<h1>Bad Request</h1>
<p>Your browser sent a request that this server could not understand.<br />
Reason: You're speaking plain HTTP to an SSL-enabled server port.<br />
Instead use the HTTPS scheme to access this URL, please.<br />
</p>
</body></html>
Connection closed by foreign …Run Code Online (Sandbox Code Playgroud) 我在 Centos 6.6 上运行 Apache/2.2.15。
我有一个 Verizon 路由器并检查了端口转发并看到
WorkstationName 192.168.1.6 HTTPS TCP Any -> 443 All Broadband Devices Active
Run Code Online (Sandbox Code Playgroud)
我去命令行输入
sudo iptables -A INPUT -p tcp --dport 443 -j ACCEPT
sudo iptables -A OUTPUT -p tcp --sport 443 -j ACCEPT
Run Code Online (Sandbox Code Playgroud)
我也进入了
sudo netstat -anltp | grep LISTEN
Run Code Online (Sandbox Code Playgroud)
并得到
tcp 0 0 0.0.0.0:3306 0.0.0.0:* LISTEN 1462/mysqld
tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 2297/sshd
tcp 0 0 :::443 :::* LISTEN 2340/httpd
tcp 0 0 :::80 :::* LISTEN 2340/httpd
tcp 0 0 :::22 …Run Code Online (Sandbox Code Playgroud) 由于 Logjam 漏洞,我将密码限制为 ECDHE,因此我无法再从 Centos 机器上执行 curl 操作。(来自 Ubuntu 的作品)
$ curl -v https://mysite.mydomain.com
* Initializing NSS with certpath: sql:/etc/pki/nssdb
* CAfile: /etc/pki/tls/certs/ca-bundle.crt CApath: none
* NSS error -12286 (SSL_ERROR_NO_CYPHER_OVERLAP)
* Cannot communicate securely with peer: no common encryption algorithm(s).
Run Code Online (Sandbox Code Playgroud)
用 openssl 打开作品:
$ openssl s_client -connect mysite.mydomain.com:443
SSL-Session:
Protocol : TLSv1.2
Cipher : ECDHE-RSA-AES256-GCM-SHA384
Run Code Online (Sandbox Code Playgroud)
我尝试使用显式密码 --insecure 和 --tlsv1.2,但没有运气
$ curl --ciphers TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 -v https://mysite.mydomain.com
curl: (59) Unknown cipher in list: TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384
Run Code Online (Sandbox Code Playgroud)
编辑:尝试使用正确的 NSS 密码名称,并且小于 384 位:
curl --ciphers ecdhe_rsa_aes_128_sha_256 …Run Code Online (Sandbox Code Playgroud) 我正在用 SonicWall NSA 3600 替换 ForeFront TMG 2010 防火墙;当前的防火墙使用 SSTP 提供对我们网络的 VPN 访问,它与任何最近的 Windows 客户端都非常相似,无需安装任何其他软件。
SonicWall 防火墙支持 SSL VPN,但显然需要安装名为 NetExtender 的软件;它可以直接从防火墙登录页面下载,因此这不是什么大不了的事……但我们真的希望避免安装任何软件而只使用 Windows 内置的 VPN 客户端。
是否可以仅使用内置 VPN 客户端从 Windows 计算机建立到 SonicWall 防火墙的 SSL VPN 连接?如果是,如何?
注意防火墙还支持 L2TP ant,它可以与 Windows 内置的 VPN 客户端(和其他几个客户端)配合使用;不幸的是,这不是一种选择:我们的员工经常访问客户站点,因为 Internet 访问仅限于 HTTP/S,因此必须使用 SSL VPN。
ssl ×10
apache-2.2 ×2
centos ×2
centos6 ×2
.htaccess ×1
amazon-elb ×1
apache-2.4 ×1
encryption ×1
exchange ×1
https ×1
logjam ×1
mod-ssl ×1
nat ×1
nss ×1
php ×1
sonicwall ×1
vpn ×1