环境:Apache2.2+Centos6.8最近需要用https做网站。像百度、京东,在浏览器上都有一个绿色的小锁,同时对数据进行了加密,对于网站来说也是一个很大的保障。由于是临时测试,所以在阿里云上买了赛门铁克免费证书。(中间申请部分跳过)最后颁发证书的时候,可以在列表页面下载,进入下载页面,选择Apache,然后按照上面官方文档进行配置即可,不需要做这。刚开始做这个的人,估计度娘google了半天还是一头雾水,因为她最后在地址栏输入域名刷新的时候,并不是她想要的效果。如果你想从这条路上来,我保证你每次都能做到。我们先这样想:比如我手上有一个域名www.aaa.com。由于我要强制全站重定向到https,所以需要配置两台虚拟主机,其中一台监听80端口。这台虚拟机只做监听和转发的工作,不需要配置站点的根目录。还有一个是监听443端口的,真正的访问工作,除了配置80虚拟机在没有ssl之前需要做的工作外,还需要开启ssl引擎验证,指定的位置证书,以及私钥(私钥是放在自己的服务器上,用于接收请求时解密数据;公钥是客户端访问时下载的),理解了上面的,下面的配置就不会了成为一个问题。#记得监听这个端口Listen443#加载这个ssl模块在LoadModulessl_modulemodules/mod_ssl.soServerNamewww.aaa.comServerAliasaaa.comRewriteEngineonRewriteRule^(.*)?$https://www.aaa.com$1[R=301,L]ServerAdminaaa@163.comDocumentRoot"/home/aaa/webroot"ServerNamewww.aaa.com#OpensslengineSSLEngineon#写入你的证书的路径SSLCertificateFile/etc/httpd/cert/public.pem#写入你的私钥的路径SSLCertificateKeyFile/etc/httpd/cert/21427950260000000.key#设置站点访问规则OptionsFollowSymLinksAllowOverrideNoneOrderallow,denyAllowfromall#Specifyerrorlog&accesslog错误日志"logs/aaa.com-error_log"CustomLog"logs/aaa.com-access_log"common说明在80虚拟机配置的最后一行,^(.*)?而$1代表,比如你访问www.aaa.com/public/index/,那么这个url的/public/index/会被占用的$1变量照常复制,[R=301,L]代表永久转发。事实上,现在很多人都在涌向使用nginx。比apache更耐高并发,占用内存更少。可以考虑从apache+tomcat换成nginx+tomcat。apache只是一种感觉