HTTPS是以安全为目标的HTTP通道,简单讲是HTTP的安全版。谷歌已经制定了一项长远的计划,它的最终目标是将所有通过HTTP协议呈现的网页标为“不安全”,对于站长来说,部署SSL证书(http://ssl.idcspy.net/)来迁移到HTTPS是一个现实和重要的问题,那么,对于Apache系统来说,如何部署SSL证书实现HTTPS协议呢?下面就讲述一下具体的实现方法。
方法/步骤
1、 安装好Apache,并且确认是否安装ssl模块,如果没安装的话,使用yuminstallmod_sslopenssl来安装ssl模块。 之后,申请并下载SSL证书文件。通常来说有四个文件,分别是:证书文件ca.pem、证书私钥文件ca.key、证书公钥文件public.pem、证书链文件chain.pem。 (1) 在Apache的安装目录下创建cert目录,并且将下载的全部文件拷贝到cert目录中。如果申请证书时是自己创建的CSR文件,请将对应的私钥文件放到cert目录下并且命名为ca.key;
2、 (2)打开apache安装目录下conf目录中的httpd.conf文件,找到以下内容并去掉“#”: #LoadModulessl_modulemodules/mod_ssl.so(如果找不到请确认是否编译过openssl插件) #Includeconf/extra/httpd-ssl.conf
3、 笪瞵岔语 (3)打开apache安装目录下conf/extra/httpd-ssl.conf惺绅寨瞀文件(也可能是conf.d/ssl.conf,与操作系统及安装方式有关),在配置文件中查找以下配置语句: #添加SSL协议支持协议,去掉不安全的协议 SSLProtocolall-SSLv2-SSLv3 #修改加密套件如下 SSLCipherSuiteHIGH:!RC4:!MD5:!aNULL:!eNULL:!NULL:!DH:!EDH:!EXP:+MEDIUM SSLHonorCipherOrderon #证书公钥配置 SSLCertificateFilecert/public.pem #证书私钥配置 SSLCertificateKeyFilecert/ca.key #证书链配置,如果该属性开头有'#'字符,请删除掉 SSLCertificateChainFilecert/chain.pem
4、 (4)设置虚拟主机 如果要设置http和https同时生效,那么需要为http在端口80上设立VirtualHost,同时为https在端口443上作类似的设置。在端口80上的网站的VirtualHost例子如下 AllowOverrideAll DocumentRoot/var/www/vhosts/yoursite.com/httpdocs ServerNameyoursite.com 在端口443上增加一个HTTPS网站,需要在文件加入如下内容 NameVirtualHost*:443
5、 笪瞵岔语 然后再加入一个类似如下的VirtualHost记录: SSLEngineon SSL潮贾篡绐CertificateFile/etc/pki/tls/certs/ca.crt SSLCertificateKeyFile/etc/pki/tls/private/ca.key AllowOverrideAll DocumentRoot/var/www/vhosts/yoursite.com/httpsdocs ServerNameyoursite.com 最后,使用如下指令重新启动Apache,即可实现网站的HTTPS功能。 /etc/init.d/httpdrestart