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

申请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端口
<VirtualHost *: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证书三个文件中的链文件
    <Directory "/data/www/defalut/">   # 网站根目录
      Options FollowSymLinks ExecCGI
      AllowOverride All
      Order allow,deny
      Allow from all
      Require all granted
    </Directory>
</VirtualHost>

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服务到这里就配置好了

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

各类产品,精心挑选的热门优惠云产品,总有一款适合你的业务形态。

                       

点击阅读全文

上一篇 2023年 5月 27日 am11:19
下一篇 2023年 5月 27日 am11:20