申请ssl证书并绑定指定域名实现全站https访问

首先申请ssl证书,这里使用的是阿里云的, 1 搜索ssl,点击ssl证书(应用安全) 2 点击立即购买

3 选择更多售卖规格

4 选择DV单域名证书(一个自然年可以免费申请20个单域名ssl证书)

5 点击购买

6 登录管理控制台

7 找到 SSL - 免费证书 – 创建证书

8 点击申请证书

9 填写绑定域名的基本信息

10 根据要求配置 DNS域名解析,最后进行验证

11 配置域名解析

12 点击验证并提交审核

13 点击下载证书

14 选择相应服务的证书,这里选择下载apache的证书

15 将下载的zip包在本地压缩后,会产生三个文件

16 将上面的三个文件上传到apache任意目录下

可以创建一个目录,这里我直接放在/usr/local/apache/conf/ssl目录下

通过MobaXterm工具将文件上传到上面的目录下

ls /usr/local/apache/conf/ssl

17 进入apache的conf目录,编辑httpd.conf,解开下面三个代码的注释

LoadModule rewrite_module modules/mod_rewrite.so

LoadModule ssl_module modules/mod_ssl.so

LoadModule socache_shmcb_module modules/mod_socache_shmcb.so

18 进入/usr/local/apache/conf/extra目录,编辑httpd-ssl.conf,该文件中不能有#,用之前需要删除下面的注释

AddType application/x-x509-ca-cert .crt

AddType application/x-pkcs7-crl .crl

SSLPassPhraseDialog builtin

SSLSessionCache "shmcb:logs/ssl_scache(512000)"

SSLSessionCacheTimeout 300

SSLUseStapling On

SSLStaplingCache "shmcb:logs/ssl_stapling(512000)"

SSLProtocol -All +TLSv1.2 +TLSv1.3

SSLProxyProtocol -All +TLSv1.2 +TLSv1.3

SSLCipherSuite HIGH:!aNULL:!MD5:!3DES:!CAMELLIA:!AES128

SSLProxyCipherSuite HIGH:!aNULL:!MD5:!3DES:!CAMELLIA:!AES128

SSLHonorCipherOrder on

SSLCompression off

Mutex sysvsem default

SSLStrictSNIVHostCheck on

# 下面这些是新增的内容

Listen 443 # 监听443端口

ServerName www.letitgo.club # 需要绑定的域名

DocumentRoot "/data/www/default/" # 网站的根目录

SSLEngine on

SSLProtocol all -SSLv2 -SSLv3

SSLCipherSuite HIGH:!RC4:!MD5:!aNULL:!eNULL:!NULL:!DH:!EDH:!EXP:+MEDIUM

SSLHonorCipherOrder on

SSLCertificateFile "conf/ssl/7318688_www.letitgo.club_public.crt" # 之前上传的ssl证书三个文件中的公钥文件

SSLCertificateKeyFile "conf/ssl/7318688_www.letitgo.club.key" # 之前上传的ssl证书三个文件中的私钥文件

SSLCertificateChainFile "conf/ssl/7318688_www.letitgo.club_chain.crt" # 之前上传的ssl证书三个文件中的链文件

# 网站根目录

Options FollowSymLinks ExecCGI

AllowOverride All

Order allow,deny

Allow from all

Require all granted

19 重启apache服务

# 进入apache的bin目录

cd /usr/local/apache/bin

# 停止apache服务

./apachectl stop

# 启动apache服务

./apachectl start

20 在浏览器验证绑定的域名是否可以进行https的访问,可以看到已经可以正常访问了 https://www.letitgo.club

21 编辑wordpress的wp-config.php文件,加上登录和后台强制使用https的设置

vi /data/www/default/wp-config.php

======> 在文件中加上下面两个

define('FORCE_SSL_LOGIN', true);

define('FORCE_SSL_ADMIN', true);

22 查看wordpress后台–设置–常规

发现wordpress地址和站点地址都加上了https

23 进入mysql,wordpress数据库,执行下面的sql语句,将http的地址换成https的

use wordpress;

update wp_posts set post_content = replace(post_content, 'http://www.letitgo.club','https://www.letitgo.club');

23 但是现在发现用http协议依然可以访问这个域名,现在需要实现指定域名的http服务跳转到https,为此需要重写写rewrite配置,在网站根目录创建文件 .htaccess ,填充以内内容 这里是/data/www/default 目录下 创建 .htaccess文件

RewriteEngine on

RewriteCond %{SERVER_PORT} !^443$

RewriteCond %{SERVER_NAME} ^letitgo.club|www.letitgo.club$

RewriteRule (.*) https://%{SERVER_NAME}/$1 [R]

24 重启httpd服务

service httpd restart

25 尝试访问letitgo.club 或者 http://www.letitgo.club 可以看到页面上自动跳转到了https://www.letitgo.club

26 到这里 申请ssl证书及域名绑定ssl 开启https服务,http跳转到https服务到这里就配置好了

如果有需要阿里云云服务器的同学可以看一看