CentOS下为Apache部署Symantec SSL证书并实现强制https访问
证书部署
-
安装SSL模块
yum install mod_ssl openssl
-
申请Symantec SSL证书,下载到本地,共有三个文件
- xxx.key
- xxx_chain.crt
- xxx_public.crt
-
新键cert目录,将以上三个证书文件放入其中
mkdir /etc/httpd/cert
-
配置ssl.conf
vim /etc/http/conf.d/ssl.conf
改为(代码之前方括号内的数字代表文本位置)
# 方括号内的数字代表*大致*文本位置 [59] DocumentRoot "/var/www/html" # 网页所在目录(绝对路径) [60] ServerName www.xxx.com:443 # 申请证书的域名 [80] SSLCipherSuite HIGH:!RC4:!MD5:!aNULL:!eNULL:!NULL:!DH:!EDH:!EXP:+MEDIUM [93] SSLHonorCipherOrder on # 以下三个路径对应之前放入cert的三个文件,根据文件名和文件类型一一对应 [100] SSLCertificateFile /etc/httpd/cert/xxx_public.crt [107] SSLCertificateKeyFile /etc/httpd/cert/xxx.key [116] SSLCertificateChainFile /etc/httpd/cert/xxx_chain.crt
-
重启Apache服务
service httpd restart
-
在浏览器地址栏输入
https://xxx.com
,会显示一个锁的logo,代表SSL部署成功
https强制访问
尽管部署完毕,在地址栏直接输入域名,仍然是访问http页面,为此要将http的访问跳转至https.
-
修改httpd.conf
vim /etc/httpd/conf/httpd.conf
找到
<Directory /var/www/html>
部分,将AllowOverride
由None
改为All
(151行左右) -
修改/创建.htaccess
vim /var/www/html/.htaccess
将全部内容改为
RewriteEngine On RewriteCond %{SERVER_PORT} 80 RewriteRule ^(.*)$ https://%{HTTP_HOST}/$1 [R,L]
-
重启Apache服务
service httpd restart
-
稍等片刻后,在浏览器地址栏直接输入域名,如xxx.com,将会直接跳转至https页面.