Apache配置阿里云的免费SSL证书

From All for Raspberry Pi, Arduino, Lattepanda, Orange Pi, Pine64 | by Geekworm
Jump to: navigation, search


简价

VPS上多网站时针对其中的某个网站部署阿里云的免费证书,记录一下启用的过程;

下载免费证书

阿里云免费证书的下载请百度!

下载之后会得到4个文件;

214933322080441.key
214933322080441.pem
chain.pem
public.pem

前面两个文件的文件名可能会有不同;

上传证书

apache目录下建议目录来保存4个证书文件

cd /usr/local/apache
mkdir cert
cd cert
//建议xx.net这个目录是为了区分多个网站需要的HTTS的证书;仅此而已;
mkdir xx.net
将上面下载到的4个证书文件放在这里。这样证书文件目录就在 /usr/local/apache/cert/xx.net下了;

修改httpd.conf文件;

#LoadModule ssl_module modules/mod_ssl.so (如果找不到请确认是否编译过 openssl 插件)
#Include conf/extra/httpd-ssl.conf

PS:conf/extra/httpd-ssl.conf 这个文件其实不需要修改,阿里云上的资料是错误的,因为我们的VPS上部署了多个网站;

配置网站对应的虚拟主机配置文件

该配置文件的扩展名为.conf, 一般在vhost目录,以网站域名来命名该文件是最好的。举例如下:

保留原来的 <VitualHost *:80>这个部分,(是为了可以继续使用http协议来访问网站);
在该文件中增加下面的部分:<VitualHost *:433>

 <VirtualHost *:443>
	ServerName xx.net
	ServerAlias www.xx.net
	DocumentRoot "/data/www/xx.net"
	<Directory  "/data/www/xx.net/">
		Options +Indexes +Includes +FollowSymLinks +MultiViews
		AllowOverride All
		Require all granted
		DirectoryIndex index.php index.html index.htm
	</Directory>
	SSLEngine on
        SSLProtocol all -SSLv2 -SSLv3
        SSLCipherSuite HIGH:!RC4:!MD5:!aNULL:!eNULL:!NULL:!DH:!EDH:!EXP:+MEDIUM
        SSLHonorCipherOrder on
        SSLCertificateFile cert/xx.net/public.pem
        SSLCertificateKeyFile cert/xx.net/214933322080441.key
        SSLCertificateChainFile cert/xx.net/chain.pem

  ErrorLog /data/wwwlog/xx.net/error.log
  CustomLog /data/wwwlog/xx.net/access.log combined
 </VirtualHost>

然后重新apache 就可以了。

service httpd restart

FAQ

Q: 您与此网站之间建议的连接并非完全安全?

A: 配置阿里云的免费证书后之后,有时会出现‘您与此网站之间建议的连接并非完全安全’,这个问题是由于页面中加载了http资源,比如引用了其它http的资源或者是图片造成的,去掉以后就正常了。