网站部署SSL证书(HTTPS)并让评分达A+

之前部署SSL,完毕后评分很低,网上这方面资料又少,所以做个记录,给遇到同样问题的朋友提供点参考资料。


本人的环境如下:

系统:Windows 8

web服务器:Apache

Apache路径:D:\Apache\


先说生成私钥 和 域名CSR

Apache一般都带有openssl


  1. 先进入Apache的conf目录,cmd命令:D:     然后:cd D:\Apache\

  2. 设置openssl.cnf 的环境变量,执行命令:set OPENSSL_CONF=D:/Apache/conf/openssl.cnf

  3. 切换到bin目录(openssl.exe的位置):cd D:\Apache\bin

  4. 生成私钥,执行命令:openssl genrsa 2048 > 96sec.key.pem

  5. 96sec.key.pem是文件名,可以自定义)

  6. 生成CSR,执行命令:openssl req -new -key 96sec.key.pem -out 96sec.pem

  7. 96sec.key.pem 是你上一步生成的私钥文件名,96sec.pem 是要生成的CSR的文件名,同样可以自定义)

  8. 执行命令后会看到下面的提示:

  9. Country Name (2 letter code) [AU]:
    State or Province Name (full name) [Some-State]:
    Locality Name (eg, city) []:
    Organization Name (eg, company) [Internet Widgits Pty Ltd]:
    Organizational Unit Name (eg, section) []:
    Common Name (eg, YOUR name) []:
    Email Address []:
  10. 附上翻译后的中文:

  11. 国家名称(2字母代码):
    州或省名称(全名)[某些州]:
    地名(如城市)[ ]:
    机构名称(如公司)[互联网widgits有限公司]:
    组织单位名称(如节)[ ]:
    通用名称(例如,你的名字)[ ]:
    电子邮件地址[ ]:
  12. 自己看着一行一行填就行了,

  13. 填完后最后的两行可以直接回车即可。

  14. Please enter the following 'extra' attributes
    to be sent with your certificate request
    A challenge password []:
    An optional company name []:
  15. 这样就生成了CSR文件,复制里面的内容提交到你申请证书的网站即可。

  16. 然后网站审核好后会颁发证书,下载下来传服务器,配置网站环境。

  17. 再说配置文件:

  18. 本人是这样配置的:

  19. 先让http跳转到https,配置文件(vhosts.conf)这样写:

  20. <VirtualHost *:80>
        ServerName www.96sec.org
    	ServerAlias 96sec.org
        Redirect permanent / https://www.96sec.org/
    </VirtualHost>
  21. 然后是https网站的配置,

  22. <VirtualHost www.96sec.org:443>
        Header always set Strict-Transport-Security "max-age=63072000; includeSubdomains; preload"
        DocumentRoot "D:/www/96sec"
        ServerName www.96sec.org:443
        ServerAlias 96sec.org:443
        ServerAdmin admin@96sec.org
        DirectoryIndex index.php index.html
        ErrorLog logs/ssl_error.log
        CustomLog logs/ssl_access.log \
        "%t %h %{SSL_PROTOCOL}x %{SSL_CIPHER}x \"%r\" %b"
        SSLEngine On
        SSLCipherSuite "EECDH+ECDSA+AESGCM EECDH+aRSA+AESGCM EECDH+ECDSA+SHA384 EECDH+ECDSA+SHA256 EECDH+aRSA+SHA384 EECDH+aRSA+SHA256 EECDH EDH+aRSA !aNULL !eNULL !LOW !3DES !MD5 !EXP !PSK !SRP !DSS !RC4"
        SSLProtocol all -SSLv2 -SSLv3
        SSLCertificateFile "D:/Apache/conf/96sec/cac7a649dfac40ef.crt"
        SSLCertificateKeyFile "D:/Apache/conf/96sec/96sec.key.pem"
        SSLCertificateChainFile "D:/Apache/conf/96sec/gd_bundle-g2-g1.crt"
    <FilesMatch "\.(shtml|phtml|php)$">
        SSLOptions +StdEnvVars
    </FilesMatch>
        BrowserMatch "MSIE [2-5]" \
        nokeepalive ssl-unclean-shutdown \
        downgrade-1.0 force-response-1.0
    <Directory "D:/www/96sec">
        Options FollowSymLinks
        AllowOverride All
        Order allow,deny
        Allow from all
    </Directory>
    </VirtualHost>
  23. 其中下面这二行是你的证书文件路径:

  24.     SSLCertificateFile "D:/Apache/conf/96sec/cac7a649dfac40ef.crt"

  25.     SSLCertificateChainFile "D:/Apache/conf/96sec/gd_bundle-g2-g1.crt"

  26. 右边这一行是你的私钥文件路径:    SSLCertificateKeyFile "D:/Apache/conf/96sec/96sec.key.pem"

  27. 修改http.conf,添加443端口:Listen 443

  28. 启用LoadModule headers_module modules/mod_headers.so 模块,去掉前面的#号,

  29. 启用LoadModule ssl_module modules/mod_ssl.so 模块,去掉前面的#号,

  30. 然后保存启动阿帕奇,去检测一下SSL,就可以看到评分A+

  31. SSL检测地址:https://wosign.ssllabs.com/


{145986DA-C969-42AB-B52D-BFF7120E76DD}.jpg


最后附上一个在线生成CSR的网站(支持多域名UCC证书CSR生成):

https://certificatetools.com/

评论回复