我们正在从一个OSCommerce网站到Magento,也是一些服务器。旧服务器在Apache上,我们的新服务器在NGINX上。我们拥有的SSL证书似乎是从GODADDY那里购买的。
我几乎想出了如何将SSL证书从旧服务器切换到新服务器。但有几个问题吗?
我从旧的OSCommerce站点apache虚拟主机上发现了三种类型的SSL文件:
SSLCertificateFile /etc/apache2/ssl/11-2013/09********ss.crt
SSLCertificateKeyFile /etc/apache2/ssl/11-2013/server.key
SSLCertificateChainFile /etc/apache2/ssl/11-2013/gd_bundle.crt我能把它们复制到新服务器上的一个位置并在NGINX配置文件中引用它们吗?或者我需要生成一个新的ssl密钥,重键 crt文件(哪一个)?
2. NGINX配置NGINX配置似乎只需要引用Apache做的两个文件?
# Specify path to your SSL certificates.
#ssl_certificate /etc/nginx/certificates/yourcertificate.crt;
#ssl_certificate_key /etc/nginx/certificates/yourcertificate.key;我应该为NGINX引用哪个CRT文件,另一个文件呢?
3. SSL3.0& SHA1 --当我在数字证书的SSL检查程序上查看我们的站点时,它说:
协议支持TLS 1.0,SSL 3.0 SSL 3.0是一个过时的协议版本,已知的漏洞。SSL证书通用名称= ourdomain.com Subject Alternative Names = ourdomain.com,www.ourdomain.com Issuer = Go爸爸安全证书颁发机构序列号=* SHA1拇指印=*密钥长度= 4096位签名算法= SHA1 + RSA (废弃)安全重新协商:支持
如何确保我们使用的是正确的协议& SHA?这是我在新的nginx配置文件中更改的内容吗?
发布于 2015-07-24 17:52:29
ssl_certificate_key应该包含目前在server.key中的内容(他们服务器的私钥未加密)。
ssl_certificate应该按照这个顺序包含服务器的证书和证书链如文件所述。所以,这基本上就是cat 09********ss.crt gd_bundle.crt的输出
一个快速检查每个-----BEGIN CERTIFICATE----- / -----END CERTIFICATE-----块到底包含哪些内容的方便的在线工具是https://www.sslshopper.com/certificate-decoder.html --如果您安装了一台安装了openssl的机器,当然可以使用
openssl x509 -in certificate.crt -text -noout关于SSL/TLS配置,我喜欢这个Mozilla wiki中的页面。它解释了你可能遇到的大部分缩略语,并就合理的配置给出了合理的建议。还有一个附带的在线工具,它将为Apache、nginx、haproxy和AWS、这里创建参考设置。例如,完整的nginx配置(使用中间配置文件的OCSP装订和HSTS )看起来如下所示,但您需要了解这些配置文件的演变,因此应该定期更新。
server {
listen 443 ssl;
# certs sent to the client in SERVER HELLO are concatenated in ssl_certificate
ssl_certificate /path/to/signed_cert_plus_intermediates;
ssl_certificate_key /path/to/private_key;
ssl_session_timeout 1d;
ssl_session_cache shared:SSL:50m;
# Diffie-Hellman parameter for DHE ciphersuites, recommended 2048 bits
ssl_dhparam /path/to/dhparam.pem;
# intermediate configuration. tweak to your needs.
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
ssl_ciphers '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';
ssl_prefer_server_ciphers on;
# HSTS (ngx_http_headers_module is required) (15768000 seconds = 6 months)
add_header Strict-Transport-Security max-age=15768000;
# OCSP Stapling ---
# fetch OCSP records from URL in ssl_certificate and cache them
ssl_stapling on;
ssl_stapling_verify on;
## verify chain of trust of OCSP response using Root CA and Intermediate certs
ssl_trusted_certificate /path/to/root_CA_cert_plus_intermediates;
resolver <IP DNS resolver>;
....
}一旦所有设置就绪并进行了测试,就转到ssllabs并运行一个测试。如果你错过了什么,你就会发现还需要做些什么。
发布于 2015-07-24 23:03:40
这是您网站的公开证书。这就是您要将SHA1更改为SHA2的键。
SSLCertificateKeyFile /etc/apache2/ssl/11-2013/server.key这是您的web服务器的专用证书。
SSLCertificateChainFile /etc/apache2/ssl/11-2013/gd_bundle.crt这是中间证书包,用于将web服务器证书卷到godaddy的根权威(因为默认情况下浏览器不一定信任它们的根证书)。
在完成所有这些工作之后,您可以使用ssllabs进行测试,但只有在您的新站点在DNS中正确的主机名上运行时(如果在完成之前仍然需要在Apache上运行该站点,则可能不希望这样做)。假设您在linux/unix机器上的某个位置有根,您可以使用openssl来测试以下内容:
或者使用以下命令,直接指向正在检查的内容:https://stackoverflow.com/questions/26473076/how-do-i-check-if-my-ssl-certificate-is-sha1-or-sha2-on-the-commandline
https://serverfault.com/questions/708300
复制相似问题