• 首页

  • 写作

  • 文章归档

  • 照片

  • 友情链接

  • 旅行

  • 读书

  • 日志

  • 随记

  • 人文历史

  • linux

  • 前端
b l o g
b l o g

admin

lzp

12月
08
linux
https

在腾讯云轻量服务器上为博客添加证书并开启https

发表于 2022-12-08 • 字数统计 2854 • 被 12 人看爆

前提条件

  • 已有域名,国内域名申请比较麻烦
  • 了解Linux,nginx的基本操作
  • 已有一个腾讯云的网站服务(例如博客服务),该网站需要配置证书,开启https,最好是有部署网站的经验,并且该网站开启nginx代理。

为什么要开启https,与证书是什么关系

因为信息的传输安全,与服务器通信的过程中,信息会被加密,避免信息被劫持。
证书是一种第三方的,被信任的认证系统,它是网站开启https所必要的,证书包含私钥和公钥,它们需要先申请,然后在部署在网站的nginx里面。

腾讯云申请证书

找到腾讯云ssl证书页面:

然后在“我的证书”页面申请免费证书

选择一年免费的证书

填写证书信息

申请的速度比较快,并会通知你,完成申请后下载证书

在已安装的Nginx上开启SSL模块并配置https

https://cloud.tencent.com/developer/article/1976591
如果没有安装ssl模块,重启nginx会报错:

进入nginx 安装的目录:/usr/local/nginx
./nginx -s relaod
nginx: [emerg] the "ssl" parameter requires ngx_http_ssl_module in /usr/local/nginx/conf/nginx.conf:223

当初安装 Nginx 的时候,没有开启 ssl 模块,那么现在就不能配置开启 https 。
nginx 安装可参考:https://abc.qyzhizi.cn/archives/nginx-an-zhuang-halo-bo-ke-duan-kou-pei-zhi

解决方案:

nginx的源码解压目录:/usr/local/nginx/nginx-1.17.10

  • 切换到 Nginx 安装目录下的 sbin 目录:
    • cd /usr/local/nginx/sbin/
  • 将 Nginx 停止运行
    • ./nginx -s stop
  • 切换到源码解压目录
    • /usr/local/nginx/nginx-1.17.10
  • 查看 Nginx 原有的模块配置
    • /usr/local/nginx/sbin/nginx -V
  • 在configure arguments:后面显示的原有的configure参数如下:
    • --prefix=/usr/local/nginx --conf-path=/usr/local/nginx/conf/nginx.conf --pid-path=/usr/local/nginx/conf/nginx.pid --lock-path=/usr/local/nginx/lock/nginx.lock
  • 在已有的配置基础上新增 --with-http_ssl_module,形成新的配置命令,并在源码目录运行下面的命令
./configure --prefix=/usr/local/nginx --conf-path=/usr/local/nginx/conf/nginx.conf --pid-path=/usr/local/nginx/conf/nginx.pid --lock-path=/usr/local/nginx/lock/nginx.lock --with-http_ssl_module
  • 配置完成后,继续运行命令 make
    • make
    • 切记:这里不要进行make install,否则就是覆盖安装
  • 备份原有已安装好的 nginx 文件
    • cp /usr/local/nginx/sbin/nginx /usr/local/nginx/sbin/nginx.bak
  • 将刚刚编译好的 nginx 文件覆盖掉原有的 nginx
    • cp ./objs/nginx /usr/local/nginx/sbin/
  • 查看是否已经加入成功
    • /usr/local/nginx/sbin/nginx -V
  • 此时看到 ssl 模块已经被加载
configure arguments: --prefix=/usr/local/nginx --conf-path=/usr/local/nginx/conf/nginx.conf --pid-path=/usr/local/nginx/conf/nginx.pid --lock-path=/usr/local/nginx/lock/nginx.lock --with-http_ssl_module

Nginx 服务器 SSL 证书安装部署

将ssl证书复制到/usr/local/nginx/conf

编辑:/usr/local/nginx/conf/nginx.conf


    upstream blog {
        server 127.0.0.1:8090;
    }

    server {
        listen       80;
        server_name  localhost;

        #charset koi8-r;

        #access_log  logs/host.access.log  main;

        location / {
            proxy_pass http://blog;
            proxy_set_header HOST $host;
            proxy_set_header X-Forwarded-Proto $scheme;
            proxy_set_header X-Real-IP $remote_addr;
            proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        }

	...
	## 添加跳转
	return 301 https://abc.qyzhizi.cn$request_uri;


    server {
        listen       443 ssl;
        server_name  abc.qyzhizi.cn;

        ssl_certificate      /usr/local/nginx/conf/abc.qyzhizi.cn_bundle.crt;
        ssl_certificate_key  /usr/local/nginx/conf/abc.qyzhizi.cn.key;

        ssl_session_cache    shared:SSL:1m;
        ssl_session_timeout  5m;

        ssl_ciphers  HIGH:!aNULL:!MD5;
        ssl_prefer_server_ciphers  on;
        client_max_body_size 20m;
        client_body_buffer_size 20m;

        location / {
            proxy_pass http://blog;
            proxy_set_header HOST $host;
            proxy_set_header X-Forwarded-Proto $scheme;
            proxy_set_header X-Real-IP $remote_addr;
            proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        }
    }

其中添加跳转:return 301 https://abc.qyzhizi.cn$request_uri;
还设置443服务,证书的位置

启动 Nginx,访问https域名,即可访问成功。

cd /usr/local/ngxin/sbin
./nginx
分享到:
nginx安装 & halo博客端口配置
收藏的链接
  • 文章目录
  • 站点概览
admin

! lzp

hello

Github Twitter QQ Email Telegram RSS
看爆 Top5
  • 历史与人文 视频链接 189次看爆
  • 2022日志随笔 175次看爆
  • 我的青海湖骑行 164次看爆
  • 读书随笔 124次看爆
  • rs2 设置教程 97次看爆

站点已萌萌哒运行 00 天 00 小时 00 分 00 秒(●'◡'●)ノ♥

Copyright © 2025 admin

由 Halo 强力驱动 · Theme by Sagiri · 站点地图