LAMP(Apache)环境安装SSL安全证书网站支持HTTPS

一、申请免费的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并保存。

发表评论

邮箱地址不会被公开。 必填项已用*标注