一、申请免费的SSL数字证书
我用的是西部数码的域名,就免费申请了一个一年的SSL证书
具体步骤不再叙述,注意要记住密码。申请成功后,下载相应的证书即可,我下载的是pem格式的。
二、在服务器部署证书服务
1、 安装相应的SSL模块
yum install openssl yum install mod_ssl
2、 配置SSL文件
配置 /etc/httpd/conf.d/ssl.conf 文件。与配置httpd.conf文件相同
主要改以下配置
LoadModule ssl_module modules/mod_ssl.so一行去掉前面的# <VirtualHost _default_:443> DocumentRoot "/var/www/html/" //网站的目录 ServerName xycsec:443 //域名与端口 SSLEngine on //开启证书服务 SSLCertificateFile /root/xycsec.cer //cer文件的位置 SSLCertificateKeyFile /root/xycsec.cn.key //key文件的位置 SSLCertificateChainFile /root/xycsec.cn_ca.crt //crt文件的位置
三、 重启httpd服务
service httpd restart
重启成功,可以使用https服务
遇到的问题,重启httpd服务失败,还没有错误提示,查看/var/log/httpd/ssl_error_log文件找到错误。
[warn] RSA server certificate is a CA certificate (BasicConstraints: CA == TRUE !?) [warn] RSA server certificate CommonName (CN) `TrustAsia DV SSL CA - G5' does NOT match server name!? [error] Unable to configure RSA server private key [error] SSL Library Error: 185073780 error:0B080074:x509 certificate routines:X509_check_private_key:key values mismatch
发现是上述(ssl.conf)的cer证书文件位置写错了。
四、 让整站支持https协议
通过301跳转的方式,让网站支持https协议
1、 开启.htaccess文件支持
修改/etc/httpd/conf/httpd.conf 文件 把文档中所有的AllowOverride None全部的都给换成AllowOverride All 去掉LoadModule rewrite_module modules/mod_rewrite.so的注释
2、 在网站根目录下新建.htaccess文件,内容如下
RewriteEngine On
RewriteCond %{SERVER_PORT} 80
RewriteRule ^(.*)$ https://%{HTTP_HOST}/$1 [R,L]
到此整个网站已经支持https
或者修改网站的固定链接,如修改wordpress的(登录和后台)强制开启SSL,可以通过修改wp-config.php文件,直接在文件末尾加入以下两行代码:
define('FORCE_SSL_LOGIN', true);
define('FORCE_SSL_ADMIN', true);
通过“设置”中“常规”里面把“WordPress地址(URL)”、“站点地址(URL)”两个地址的http修改为https并保存。

