emlog http转https ssl糙析步骤

0x00简介

刚部署好,简单说下吧
首先保证服务器支持ssl,有cdn的话也要支持才可以

0x01大概步骤

1. 申请SSL证书

有免费的也有付费的,看自己需求
百度”免费ssl

2. 安装证书

不详解了

3. 修改代码

  1. /include/lib/option.php
    请将以下内容粘贴到 get function 的 default 判断分支之前 (在Emlog 5.3.1下是第43行)
case 'blogurl':
    return realUrl();
    break;
  1. /include/lib/function.base.php
    请将以下内容粘贴到文件的末尾
/**
 * 获取当前访问的base url
 */
function realUrl() {
    static $real_url = NULL;

    if ($real_url !== NULL) {
        return $real_url;
    }

    $emlog_path = EMLOG_ROOT . DIRECTORY_SEPARATOR;
    $script_path = pathinfo($_SERVER['SCRIPT_NAME'], PATHINFO_DIRNAME);
    $script_path = str_replace('\\', '/', $script_path);
    $path_element = explode('/', $script_path);

    $this_match = '';
    $best_match = '';

    $current_deep = 0;
    $max_deep = count($path_element);

    while($current_deep < $max_deep) {
        $this_match = $this_match . $path_element[$current_deep] . DIRECTORY_SEPARATOR;

        if (substr($emlog_path, strlen($this_match) * (-1)) === $this_match) {
            $best_match = $this_match;
        }

        $current_deep++;
    }

    $best_match = str_replace(DIRECTORY_SEPARATOR, '/', $best_match);
    $real_url  = $_SERVER['HTTPS'] === 'on' ? 'https://' : 'http://';
    $real_url .= $_SERVER["SERVER_NAME"];
    $real_url .= in_array($_SERVER['SERVER_PORT'], array(80, 443)) ? '' : ':' . $_SERVER['SERVER_PORT'];
    $real_url .= $best_match;

    return $real_url;
}
  1. /init.php
    请用以下代码覆盖同名的define (在Emlog 5.3.1下是第39行)
define('DYNAMIC_BLOGURL', Option::get("blogurl"));
  1. 如果网站使用http访问就强制转向https 在你的模板下的header.php中增加以下代码
//强制https
if(!isset($_SERVER['HTTPS'])){
Header("HTTP/1.1 301 Moved Permanently");
header('Location: https://'.$_SERVER['HTTP_HOST'].$_SERVER['REQUEST_URI']);

0x02相关问题

可能设置完上面以后,打开后是css js等是没有生效的

  1. 需要批量替换http为https
  2. 替换完成后看一下还有没有没生效的,F12审查元素看一下,哪一个不是https
  3. 按照不是https的名称去批量查找
  4. 找到后可以写绝对路径-直接写成https
    也可以写相对路径 如://index.html

也可以尝试一下这个全站开启SSL插件
我试了下我这个模板部分不能改,但开启更好因为有地方采取函数什么的这个可以使之变成s,可以尝试下,自行斟酌
下载地址:https://wzz.lanzous.com/ibbnuaf
欢迎指正修改

发表评论 / Comment

用心评论~