店铺域名使用自定义ssl

关于域名ssl

独立站的每个店铺,都有一个相应的域名,域名通过https访问,需要有ssl证书,按照fecify的逻辑,通过cloudflare集成来解决多个独立站的ssl证书问题, 但是有的用户的商品可能存在投诉问题,不想使用cf的ssl证书,希望自己来配置自己的ssl证书

这种情况下,该店铺就不要套cf了,域名直接解析到服务器ip,然后在宝塔里面nginx配置ssl证书即可

一:准备工作

1.域名解析到服务器IP(本次演示的域名是:www.fecify.online

2.域名申请ssl证书(ngxin),申请通过后,是2个文件,上传到文件路径:/www/server/panel/vhost/cert

  • 创建文件夹 /www/server/panel/vhost/cert/www.fecify.online
  • 将ssl证书的2个文件进行上传

上传后的文件路径:(下面的两个ssl证书文件,是我在阿里云生成的免费ssl证书)

  • ssl_certificate: /www/server/panel/vhost/cert/www.fecify.online/www.fecify.online.pem
  • ssl_certificate_key: /www/server/panel/vhost/cert/www.fecify.online/www.fecify.online.key

怎么区分那个是ssl_certificate? 以-----BEGIN CERTIFICATE-----开头的就是ssl_certificate,另外一个就是ssl_certificate_key

需要注意的是:阿里云免费ssl证书,申请www.fecify.online的ssl证书,自动包含根域名fecify.online,也就是说这个ssl证书是根域名和www域名公用的。 如果您申请的证书不支持,您需要额外申请一个根域名的ssl证书。

3.进入宝塔,进行配置

3.1点击设置:

3.2点击域名管理,确保要配置的域名,在域名管理里面没有添加

  • 如果出现www.fecify.onlinefecify.online(如果出现,说明您之前手动添加过),则需要删除掉(本次演示的域名是www.fecify.online,您需要使用您自己添加的域名,查看您本次设置的域名在这里是否存在,如果存在则删除掉,www域名和根域名都需要删除掉)

3.3点击配置文件:

3.4配置前,先将配置部分,保存到一个txt文件里面,备份一下,出现问题后可以还原

  • 一定要备份一下配置文件的内容,否则出现问题无法还原,重要的事情说三遍!!
  • 一定要备份一下配置文件的内容,否则出现问题无法还原,重要的事情说三遍!!
  • 一定要备份一下配置文件的内容,否则出现问题无法还原,重要的事情说三遍!!

将配置内容的第一个server的内容复制出来,放到notepad等编辑里面打开(如果之前没有配置过,里面只有一个server的配置):

配置内容的第一个server复制到编辑器后,在编辑器里面进行修改:(不要在宝塔的环境里面修改,在本地编辑器修改,更稳稳妥)

  • listen 80; 去掉,或者注释掉(注释,就是前面加个#
  • server_name:(大约配置的第5行),是域名部分,改成:www.fecify.online
  • ssl_certificate:ssl证书certificate的文件路径(上面步骤上传的ssl证书文件)
  • ssl_certificate_key:ssl证书certificate_key的文件路径(上面步骤上传的ssl证书文件)
  • 其他的可以不做改动

ssl证书的两个文件路径一定要写对,如果分不清,可以按照下面的方式,打开这个文件,查看文件内容进行区分

  • ssl_certificate: 将其修改ssl证书文件的路径(上面步骤已经进行了上传,如果您分不清2个文件,可以打开文件,如果文件内容开头是-----BEGIN CERTIFICATE-----,则对应到这里)
  • ssl_certificate_key:另外一个文件就是key文件

下面是一个例子:您需要:

  • (大约第3行代码)注释掉listen 80;(或者删除)
  • (大约第5行代码)配置www域名
  • (大约第11,12行代码)ssl证书文件替换成您自己的文件路径
server
{
    # listen 80;
    listen 443 ssl http2;
    server_name www.fecify.online;
    index index.php index.html index.htm default.php default.htm default.html;
    root /www/wwwroot/www.fecshop.cn/public;

    #SSL-START SSL相关配置,请勿删除或修改下一行带注释的404规则
    #error_page 404/404.html;
    ssl_certificate    /www/server/panel/vhost/cert/www.fecify.online/www.fecify.online.pem;
    ssl_certificate_key    /www/server/panel/vhost/cert/www.fecify.online/www.fecify.online.key;
    ssl_protocols TLSv1.1 TLSv1.2 TLSv1.3;
    ssl_ciphers EECDH+CHACHA20:EECDH+CHACHA20-draft:EECDH+AES128:RSA+AES128:EECDH+AES256:RSA+AES256:EECDH+3DES:RSA+3DES:!MD5;
    ssl_prefer_server_ciphers on;
    ssl_session_cache shared:SSL:10m;
    ssl_session_timeout 10m;
    add_header Strict-Transport-Security "max-age=31536000";
    error_page 497  https://$host$request_uri;
        #SSL-END
    #引用重定向规则,注释后配置的重定向代理将无效
    include /www/server/panel/vhost/nginx/redirect/www.fecshop.cn/*.conf;

    #ERROR-PAGE-START  错误页配置,可以注释、删除或修改
    #error_page 404 /404.html;
    #error_page 502 /502.html;
    #ERROR-PAGE-END

    #PHP-INFO-START  PHP引用配置,可以注释或修改
    include enable-php-74.conf;
    #PHP-INFO-END

    #REWRITE-START URL重写规则引用,修改后将导致面板设置的伪静态规则失效
    include /www/server/panel/vhost/rewrite/www.fecshop.cn.conf;
    #REWRITE-END

    #禁止访问的文件或目录
    location ~ ^/(\.user.ini|\.htaccess|\.git|\.env|\.svn|\.project|LICENSE|README.md)
    {
        return 404;
    }

    #一键申请SSL证书验证目录相关设置
    location ~ \.well-known{
        allow all;
    }

    #禁止在证书验证目录放入敏感文件
    if ( $uri ~ "^/\.well-known/.*\.(php|jsp|py|js|css|lua|ts|go|zip|tar\.gz|rar|7z|sql|bak)$" ) {
        return 403;
    }

    location ~ .*\.(gif|jpg|jpeg|png|bmp|swf)$
    {
        expires      30d;
        error_log /dev/null;
        access_log /dev/null;
    }

    location ~ .*\.(js|css)?$
    {
        expires      12h;
        error_log /dev/null;
        access_log /dev/null;
    }
    access_log  /www/wwwlogs/www.fecshop.cn.log;
    error_log  /www/wwwlogs/www.fecshop.cn.error.log;
}

如果您的代码没有ssl_certificate这个部分的配置,那么您可以手动复制下面的配置代码

  • 视频里面对这个部分疏漏了,文档里面进行了补充,您需要复制这个ssl配置的代码到您的编辑器里面(复制的位置,参看下面的截图)
    ssl_certificate    /www/server/panel/vhost/cert/www.fecify.online/www.fecify.online.pem;
    ssl_certificate_key    /www/server/panel/vhost/cert/www.fecify.online/www.fecify.online.key;
    ssl_protocols TLSv1.1 TLSv1.2 TLSv1.3;
    ssl_ciphers EECDH+CHACHA20:EECDH+CHACHA20-draft:EECDH+AES128:RSA+AES128:EECDH+AES256:RSA+AES256:EECDH+3DES:RSA+3DES:!MD5;
    ssl_prefer_server_ciphers on;
    ssl_session_cache shared:SSL:10m;
    ssl_session_timeout 10m;
    add_header Strict-Transport-Security "max-age=31536000";
    error_page 497  https://$host$request_uri;

粘贴到如下图这个位置(在您的编辑器的里面,进行代码复制):

然后在编辑器里面,按照上面的要求,进行配置即可

3.5设置http访问www域名和根域名,301跳转到https

  • 访问:http://fecify.online,进行301跳转到 https://www.fecify.online
  • 访问:http://www.fecify.online,进行301跳转到 https://www.fecify.online
    • 您需要将fecify.online替换成您自己的域名,ssl证书文件替换成您自己的文件路径

nginx配置代码如下:

server {  
    listen 80;  
    server_name fecify.online www.fecify.online;

    # Redirect to https://www.fecify.online  
    return 301 https://www.fecify.online$request_uri;  
}

3.6当https访问根域名,301跳转到www域名

  • 访问:https://fecify.online,进行301跳转到 https://www.fecify.online
  • 下面加的ssl证书,是根域名的ssl证书,如果您的根域名和www域名是同样的证书文件,那么可以和上面的配置一致
  • 如果您申请的www域名的ssl证书不包含根域名,那么您需要单独申请根域名的ssl证书,并上传根域名的ssl证书,下面的文件路径是根域名的ssl文件路径
  • 您需要将fecify.online替换成您自己的域名,ssl证书文件替换成您自己的文件路径

nginx配置代码如下:

server {  
    listen 443 ssl;  
    server_name fecify.online;  

    ssl_certificate /www/server/panel/vhost/cert/www.fecify.online/www.fecify.online.pem;  
    ssl_certificate_key /www/server/panel/vhost/cert/www.fecify.online/www.fecify.online.key;  

    # Redirect to https://www.fecify.online  
    return 301 https://www.fecify.online$request_uri;  
}

3.7最终配置完成

  • 将上面的3部分的nginx配置代码进行合并
  • 合并后的代码如下
server
{
    # listen 80;
    listen 443 ssl http2;
    server_name www.fecify.online;
    index index.php index.html index.htm default.php default.htm default.html;
    root /www/wwwroot/www.fecshop.cn/public;

    #SSL-START SSL相关配置,请勿删除或修改下一行带注释的404规则
    #error_page 404/404.html;
    ssl_certificate    /www/server/panel/vhost/cert/www.fecify.online/www.fecify.online.pem;
    ssl_certificate_key    /www/server/panel/vhost/cert/www.fecify.online/www.fecify.online.key;
    ssl_protocols TLSv1.1 TLSv1.2 TLSv1.3;
    ssl_ciphers EECDH+CHACHA20:EECDH+CHACHA20-draft:EECDH+AES128:RSA+AES128:EECDH+AES256:RSA+AES256:EECDH+3DES:RSA+3DES:!MD5;
    ssl_prefer_server_ciphers on;
    ssl_session_cache shared:SSL:10m;
    ssl_session_timeout 10m;
    add_header Strict-Transport-Security "max-age=31536000";
    error_page 497  https://$host$request_uri;
        #SSL-END
    #引用重定向规则,注释后配置的重定向代理将无效
    include /www/server/panel/vhost/nginx/redirect/www.fecshop.cn/*.conf;

    #ERROR-PAGE-START  错误页配置,可以注释、删除或修改
    #error_page 404 /404.html;
    #error_page 502 /502.html;
    #ERROR-PAGE-END

    #PHP-INFO-START  PHP引用配置,可以注释或修改
    include enable-php-74.conf;
    #PHP-INFO-END

    #REWRITE-START URL重写规则引用,修改后将导致面板设置的伪静态规则失效
    include /www/server/panel/vhost/rewrite/www.fecshop.cn.conf;
    #REWRITE-END

    #禁止访问的文件或目录
    location ~ ^/(\.user.ini|\.htaccess|\.git|\.env|\.svn|\.project|LICENSE|README.md)
    {
        return 404;
    }

    #一键申请SSL证书验证目录相关设置
    location ~ \.well-known{
        allow all;
    }

    #禁止在证书验证目录放入敏感文件
    if ( $uri ~ "^/\.well-known/.*\.(php|jsp|py|js|css|lua|ts|go|zip|tar\.gz|rar|7z|sql|bak)$" ) {
        return 403;
    }

    location ~ .*\.(gif|jpg|jpeg|png|bmp|swf)$
    {
        expires      30d;
        error_log /dev/null;
        access_log /dev/null;
    }

    location ~ .*\.(js|css)?$
    {
        expires      12h;
        error_log /dev/null;
        access_log /dev/null;
    }
    access_log  /www/wwwlogs/www.fecshop.cn.log;
    error_log  /www/wwwlogs/www.fecshop.cn.error.log;
}

# root domain, www domain: http 301 redirect to https
server {  
    listen 80;  
    server_name fecify.online www.fecify.online;

    # Redirect to https://www.fecify.online  
    return 301 https://www.fecify.online$request_uri;  
} 

# root domain: https 301 redirect www domain
server {  
    listen 443 ssl;  
    server_name fecify.online;

    # use root domain ssl file
    ssl_certificate /www/server/panel/vhost/cert/www.fecify.online/www.fecify.online.pem;  
    ssl_certificate_key /www/server/panel/vhost/cert/www.fecify.online/www.fecify.online.key;  

    # Redirect to https://www.fecify.online  
    return 301 https://www.fecify.online$request_uri;  
}

3.8将这个代码内容,进行复制,追加到配置文件的底部:

  • 注意,是将上面的配置代码追加到底部,而不是覆盖,重要的事情说三遍!!!
  • 注意,是将上面的配置代码追加到底部,而不是覆盖,重要的事情说三遍!!!
  • 注意,是将上面的配置代码追加到底部,而不是覆盖,重要的事情说三遍!!!

进行保存即可(如果您的ssl证书路径写错了,保存将会报错)

4.fecify服务端后台,创建一个店铺,域名解析通过后,设置店铺的域名

创建店铺后,点击详情按钮

设置店铺域名,保存

5.访问https://www.fecify.online,测试是否可以访问

另外需要测试根域名的301跳转,是否跳转到www域名

  • http://fecify.online
  • http://www.fecify.online
  • https://fecify.online

如果上面的几个域名访问都跳转到了 https://www.fecify.online , 则说明配置正确

Copyright © fecify.com 2022 all right reserved,powered by Gitbook该文件修订时间: 2025-02-28 16:24:37

results matching ""

    No results matching ""