记录本博客网站配置https后的一些步骤及遇到一些问题

2023-12-14T14:55:00

部署你的HTTPS,永久免费,自动续约。

1、本文基于NGINX,首先安装NGINX 并开启http_ssl_module

  • 系统平台:CentOS7  64位。
  • 安装编译工具及库文件

    yum -y install make zlib zlib-devel gcc-c++ libtool  openssl openssl-deve
  • 安装 PCRE
    PCRE 作用是让 Nginx 支持 Rewrite 功能。
    下载 PCRE 安装包,下载地址: http://downloads.sourceforge.net/project/pcre/pcre/8.35/pcre-8.35.tar.gz
    或者linux下载

    cd /usr/local/src/ 
    wget http://downloads.sourceforge.net/project/pcre/pcre/8.35/pcre-8.35.tar.gz

    进入安装包目录

    tar zxvf pcre-8.35.tar.gz
    cd pcre-8.35
    ./configure && make && make install

    查看pcre版本

    pcre-config --version
  • 安装 Nginx
    1、下载 Nginx,下载地址:https://nginx.org/en/download.html

    wget http://nginx.org/download/nginx-1.6.2.tar.gz

    2、解压安装包

     tar zxvf nginx-1.6.2.tar.gz

    3、进入安装包目录

      cd nginx-1.6.2

    4、编译并安装

 ./configure --prefix=/usr/local/webserver/nginx --with-http_stub_status_module --with-http_ssl_module -- 
 with-pcre=/usr/local/src/pcre-8.35 && make && make install

这里注意 http_ssl_module 必须要开启 并且注意编译命令的安装包目录是否正确

2、nginx 配置本博客通过域名访问

  • 编辑 nginx conf目录下的 nginx.conf
server {
    listen 80;
    server_name www.ailinlin.top;

    location / {
        proxy_pass http://IP:端口;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
    }

域名注册成功 并且配置过 DNS解析后通过上述的简单配置就可以通过域名访问本博客了。但此时还无法通过https访问

3、配置https访问本博客

Certbot 是一个由 Let's Encrypt 开发的免费开源工具,用于自动化部署和管理 SSL/TLS 证书。

它具有以下几个显著的好处:

  • 免费证书:Certbot 使用 Let's Encrypt 作为其证书颁发机构,Let's Encrypt 提供免费的 SSL/TLS 证书。这意味着您可以使用 Certbot 轻松获取和更新有效的证书,而无需支付费用。
  • 自动化:Certbot 可以自动化证书签发和更新的过程,减少了手动操作的工作量和错误的风险。您可以设置定期任务,让 Certbot 自动检查证书的到期日期,并在需要时自动进行更新。
  • 安全性:使用 SSL/TLS 证书可以加密网站与用户之间的通信,确保数据在传输过程中的安全性。Certbot 简化了证书的获取和管理过程,使您能够快速轻松地为您的网站启用 HTTPS,提供更安全的访问方式。

本文介绍在nginx环境上的安装和使用certbot

  • 要安装certbot,我们需要先安装snapd 。需要依次执行以下几条命令,执行完最后一步,需要重新登录服务器或者重启机器让snap生效。

    sudo yum install epel-release
    sudo yum install snapd
    sudo systemctl enable --now snapd.socket
    sudo ln -s /var/lib/snapd/snap /snap
  • 接下来,来安装certbot

    • 执行安装命令

      sudo snap install --classic certbot
    • 设置软链接

      sudo ln -s /snap/bin/certbot /usr/bin/certbot
  • 到这里,certbot已经安装好了,简单介绍一下它的2个工作模式

    • sudo certbot --nginx 运行此命令获取证书,并让Certbot自动编辑您的nginx配置以提供证书,在一个步骤中打开HTTPS访问。
    • sudo certbot certonly --nginx 如果你感觉更保守,只需要证书。其他想手工修改nginx配置,运行这个命令。 在这里,我采用第一种方式。
  • 执行sudo certbot --nginx 后按照提示完成安装

    certbot会自动检查nginx配置过的域名,并且帮你修改为https配置。 你也可以按照第二种方式只生成证书自己进行nginx的配置。

4、配置https后 typecho 博客遇到的问题及解决方案

1、typecho 博客前端样式缺失

  • 原因: 通过控制台查看css及js还是http链接。https不能访问http资源

  • 解决方案:在博客后台设置-基本-站点地址把站点地址修改为正确的地址,包括正确的http/https协议。

2、typecho 博客之前上传的图片无法访问

  • 原因同样是https不能访问http资源

  • 解决方案:直接修改数据库中已经存过的文件链接地址

    UPDATE typecho_contents
    SET text = REPLACE(text, '原http地址', '新https地址')

3、typecho 博客管理后台无法登陆切样式缺失

  • 原因:猜测是因为用户与浏览器之间是 HTTPS 交互,但实际上 PHP 接收到的是来自 Cloud Flare 的 HTTP 交互,所以 PHP 使用了 HTTP 进行响应,结合 Typecho 的一些特性形成了这个问题。

  • 解决方案:编辑 Typecho 站点根目录下的文件 config.inc.php,在最后添加一行 define('__TYPECHO_SECURE__',true); 即可。

当前页面是本站的「Baidu MIP」版。发表评论请点击:完整版 »