网站配置免费SSL/HTTPS成功手记(windows apache)

/ 0

最近想在网站上加一个SSL,让网站可以HTTPS访问,使数据更加安全,网站更稳定。

找了两个免费SSL

  1. 阿里云免费SSL,是由赛门铁克公司颁发
  2.  Let’s Encrypt  免费SSL,据说很厉害的样子

 

于是这两个都试了一下,不能马上就上官网,所以用万网几块钱买的ECS做测试,测试环境是phpstudy

网上教程很少,但综合了很多手动安装证书的教程,最后还是完成了。

其实很简单,申请证书完成之后,将证书导入apache即可,至于IIS,应该更简单因为都是图形界面。

这里先只说apache的。

 

使用阿里云免费SSL,申请后需要验证域名归属,设置一个TXT的@记录即可,然后通过后,下载证书。在下载的时候就有介绍,不过我用他的方法没成功,在网上找了另一个方法成功导入。

以下是效果,依次是谷歌、火狐、360

 

对于phpstudy来说,默认是开着SSL的,不需要设置,直接改配置文件即可。将以下内容添加至httpd.conf 或者vhosts.conf都可以。我是加到vhosts里面了,这样方便整理。如果你会配置,那也可以新建一个vhostsSSL.conf并从httpd.conf里面来引入此配置文件,做到更好的区分。

至于绑定主机名之类的操作,可以百度搜索apache 配置 vhosts

以下内容是配置阿里免费SSL,如想使用Let’s Encrypt直接把路径、加密方式、协议改了即可。下面详细介绍Let’s Encrypt

Listen 443
<VirtualHost *:443>

SSLEngine on
SSLProtocol all -SSLv2 -SSLv3
SSLCipherSuite HIGH:!RC4:!MD5:!aNULL:!eNULL:!NULL:!DH:!EDH:!EXP:+MEDIUM
SSLCertificateFile "E:/phpStudy/apache/cert/public.pem"
SSLCertificateKeyFile "E:/phpStudy/apache/cert/一长串数字.key"
SSLCertificateChainFile "E:/phpStudy/apache/cert/chain.pem"
DocumentRoot "E:/phpStudy/WWW"
<Directory />
Options +Indexes +FollowSymLinks +ExecCGI
AllowOverride All
Order allow,deny
Allow from all
Require all granted
</Directory>
</VirtualHost>

 

 

在windows下申请Let’s Encrypt我使用的是letsencrypt-win-simple.V1.9.5.0-beta1 非常方便。

下载完解压后,运行letsencrypt.exe 大概是下面这种样子 ,由于我已经申请过了,可能跟第一次运行不一样,所以可以忽略图片。请看文字。

 

 

运行程序

 

第一项,会要求你输入邮箱,我输入了,直到申请完成也没收到什么邮件。

 

第二项,同意它的协议

 

第三项,选择模式,就是上图中的灰色字,W: F: M: Q:  自己翻译一下即可,在这里选择M,手动配置

 

第四项,输入域名

 

第五项,输入网站绝对路径(程序会在网站路径下新建一个.well-known文件夹并在里面添加验证文件,不要删除)

 

第六项,然后会有一些滚动的命令闪过

最后,提示你是否新建计划任务来维持证书永久有效

其实所有步骤,复制一下,翻译,大概就能看懂了。没什么特别难的,这里只是申请证书,在第六项滚动命令时会下载到某个目录,并提示你下载到哪里了,注意看程序窗口的信息。

我的是在C:/ProgramData/letsencrypt-win-simple/httpsacme-v01.api.letsencrypt.org/ 下面

然后就跟阿里云配置一样了,把路径改一下即可,尽量不要改证书路径。

SSLCertificateFile "C:/ProgramData/letsencrypt-win-simple/httpsacme-v01.api.letsencrypt.org/域名.xin-crt.pem"
SSLCertificateKeyFile "C:/ProgramData/letsencrypt-win-simple/httpsacme-v01.api.letsencrypt.org/域名.xin-key.pem"
SSLCertificateChainFile "C:/ProgramData/letsencrypt-win-simple/httpsacme-v01.api.letsencrypt.org/域名.xin-chain.pem"

加上

SSLHonorCipherOrder on

SSLProxyProtocol all -SSLv2 -SSLv3
SSLProxyCipherSuite HIGH:!RC4:!MD5:!aNULL:!eNULL:!NULL:!DH:!EDH:!EXP:+MEDIUM

 

至于PHP的OPENSSL,我这里没开。可以正常使用。

如果你用的不是phpstudy,但也是apache的,那么看一下httpd.conf里面  LoadModule ssl_module modules/mod_ssl.so 是否开启

其实总结下来步骤很简单

  1. 申请证书
  2. 下载证书
  3. 配置

如果说加上之后没有出现上面那种绿锁,是因为你自己网站代码中还有http的链接,查看源代码,查找http://,找到并改一下,使所有申请域名的链接都是https的就可以了。

不要看我的网站,我的网站是万网的虚拟空间,不支持。