注意本篇内容谢绝转载
七、给
Apache
添加
SSL
证书
还记得在前边提到的
MySQL
服务器如何使用自建
CA
(
证书管理机构
),自己创建服务器和客户端证书的步骤吧。在
Apache
服务器上,如果我们的网站的访问者是一个有限的封闭的几个人或公司内部,那么用自己建立的
CA
签发
SSL
服务器和客户机证书就好了。
而如果网站的访问者是面向互联网大众的,最好还是向专业的
C
如申请并购买服务器证书,这样客户端的浏览器会自动向
CA或ICA
(授权证书管理机构)验证你服务器证书的有效性。
这一部分主要来说明一下如何添加已经购买好的服务器证书。
这一部分主要来说明一下如何添加已经购买好的服务器证书。
本篇内容大部分系翻译内容。
---翻译内容开始--
如果你是要安装了一个
EV SSL证书,查看这里
Apache EV SSL Certificate Installation Instructions
(即Apache EV SSL证书安装指南)。如果是你安装的是其它证书,请参照下面的步骤操作:
1.
拷贝证书文件到你的服务器
从你的客户专区下载
ICA(即
Intermediate Certificate Authority)证书文件(
DigiCertCA.crt)和你的服务器证书文件(
<你的域名
>.crt),然后把它们拷贝到你的服务器上要存放证书和私钥文件的路径,并确保
root用户可读。
2.
查找Apache的配置文件并编辑
这个文件的位置因服务器而异,特别是你用了一个指定的路径
(special interface)来管理你的服务器配置。
Apache配置文件通常在
/etc/httpd。主配置文件常常以
httpd.conf命名。在大多数情况下
<VirtualHost>块在
httpd.conf文件的底部。有 时
<VirtualHost>块则会存在于他们单独的文件,并放置在类似
/etc/httpd/vhost.d/或者
/etc/httpd /sites/的目录下,或者在名为
ssl.conf的文件中。
如果你拿文本编译器打开这个文件,你可以找到包含了
Apache的设置的
<VirtuaHost>块。
3.
配置<VirtualHost>块识别SSL
如果你需要自己的站点通过加密的(
https)和非加密(
http)连接都能够访问的话,你需要每种连接类型配置一个虚拟主机
(virtual host)。一定要拷贝一份已存在的非加密的虚拟主机,而后按照步骤
4的描述把它配置成支持
SSL。
如果你仅仅需要网站通过安全机制访问,按照步骤
4的描述配置已经存在的虚拟主机支持
SSL。
4.
配置<VirtualHost>块为站点启用SSL安全机制
下面是一个简单的配置成支持
SSL的虚拟主机例子。其中列出的粗体部分是必须添加的
SSL配置。
<VirtualHost 192.168.0.1:443>
DocumentRoot /var/www/html2
ServerName www.yourdomain.com
SSLEngine on
SSLCertificateFile /path/to/your_domain_name.crt
SSLCertificateKeyFile /path/to/your_private.key
SSLCertificateChainFile /path/to/DigiCertCA.crt
</VirtualHost>
按照你的
证书文件来调整文件名和路径。
- SSLCertificateFile <这里应该是你的服务器证书文件> (例如:your_domain_name.crt)
- SSLCertificateKeyFile <这里应该是你在创建CSR时候生成的的密钥文件>
- SSLCertificateChainFile <这里应该是 DigiCert 的ICA证书文件> (默认为DigiCertCA.crt)
5.
在重新启动Apache前先测试你的配置
通常,最好在重新启动
Apache
之前测试你的
Apache配置文件以防有错,这是因为一旦你的配置文件存在语法错误,
Apache就再启动不起来了。运行下面的命令:(在一些系统上可能是
apache2ctl)
apachectl configtest
6.
重新启动Apache
apachectl stop
apachectl start
提示:如果
Apache不能启动带
SSL支持,请尝试用
“apachectl startssl”替代
“apachectl start”。如果只有在使用
“apache startssl”时
SSL支持才会加载,那我们建议你修改
apache的启动配置把
SSL支持包含到正常的
“apachectl start”命令中。要不然的话当服务器重启时可能需要你通过
“apachectl startssl”来手动重新启动
Apache。这经常会导致
<IfDefine SSL>和
</IfDefine>标记被移而关闭
SSL相关的配置。
译者注:在最新版本的Apache中apachctl脚本的startssl这个参数已经废除。
排除故障:
3.如果你为了符合
PCI Compliance requirements
(即PCI 兼容列表)需要禁用
SSL version 2 的兼容性时,你需要在你的
Apache配置文件中添加下面的指令:
SSLCipherSuite HIGH:+MEDIUM:!SSLv2:!EXP:!ADH:!aNULL:!eNULL:!NULL
如果这条指令已经存在,你很可能需要修改这条指令来禁用
SSL version 2。
---翻译内容结束--
下一个连载的内容将是如何编译PHP以及要注意的一些事项。到现在,连载内容已经接近尾声。
本文转自xiaoyuwang 51CTO博客,原文链接:http://blog.51cto.com/wangxiaoyu/201522,如需转载请自行联系原作者