前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Nginx配置HTTPS

Nginx配置HTTPS

作者头像
cultureSun
发布2023-05-18 14:20:06
2.2K0
发布2023-05-18 14:20:06
举报
文章被收录于专栏:cultureSun学安全cultureSun学安全

简介

Nginx是一款轻量级的Web 服务器/反向代理服务器及电子邮件(IMAP/POP3)代理服务器,在BSD-like 协议下发行。其特点是占有内存少,并发能力强,事实上nginx的并发能力在同类型的网页服务器中表现较好。----摘自百度百科。 HTTPS (全称:Hypertext Transfer Protocol Secure [5] ),是以安全为目标的 HTTP 通道,在HTTP的基础上通过传输加密和身份认证保证了传输过程的安全性 [1] 。HTTPS 在HTTP 的基础下加入SSL,HTTPS 的安全基础是 SSL,因此加密的详细内容就需要 SSL。 HTTPS 存在不同于 HTTP 的默认端口及一个加密/身份验证层(在 HTTP与 TCP 之间)。这个系统提供了身份验证与加密通讯方法。----摘自百度百科

详解

配置https

  1. http_ssl_module模块

http_ssl_module模块提供了Nginx支持https的功能。若没有这个模块,配置会失败。 验证是否安装http_ssl_module模块(需配置nginx的环境变量): nginx -V 若没有配置环境变量,需要到nginx目录下的sbin目录执行。 输出包含--with-http_ssl_module字符串则代表已经安装http_ssl_module模块。

  1. 准备证书私钥

将证书文件和私钥文件拷贝到nginx根目录下的/conf目录。 证书文件一般是 .crt 文件,私钥文件是 .key 文件。

  1. 编辑Nginx根目录下的conf/nginx.conf 文件
代码语言:javascript
复制
server {
     #SSL 默认访问端口号为 443
     listen 443 ssl; 
     #请填写绑定证书的域名
     server_name example.com;  #注意填写自己的域名
     #请填写证书文件的相对路径或绝对路径
     ssl_certificate example.crt;   #步骤2中拷贝的证书文件
     #请填写私钥文件的相对路径或绝对路径
     ssl_certificate_key example.key;    #步骤2中拷贝的私钥文件
     ssl_session_timeout 5m;
     #请按照以下协议配置
     ssl_protocols TLSv1.2 TLSv1.3; 
     #请按照以下套件配置,配置加密套件,写法遵循 openssl 标准。
     ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:HIGH:!aNULL:!MD5:!RC4:!DHE; 
     ssl_prefer_server_ciphers on;
     location / {
         #网站主页路径。此路径仅供参考,具体请您按照实际目录操作。
         #例如,您的网站主页在 Nginx 服务器的 /etc/www 目录下,则请修改 root 后面的 html 为 /etc/www。
         root html; 
         index  index.html index.htm;
     }
 }

YAML

  1. 验证配置文件

nginx -t 与步骤1一样,需配置环境变量。 若配置正常会在输出内容末尾看到is successful。否则会输出Error错误信息。

  1. 重启nginx

nginx -s reload 或者 systemctl restart nginx 同样需配置环境变量。

http重定向https

配置好https后,http依然可以访问。若不想http访问,可以重定向到https。 在上述的步骤3中追加如下内容。

代码语言:javascript
复制
server {
 listen 80;
 #请填写绑定证书的域名
 server_name example.com;    #注意填写自己的域名
 #把http的域名请求转成https
 return 301 https://$host$request_uri; 
}

YAML

然后继续执行步骤4和步骤5。

typecho开启https

给nginx配置好https还不行,typecho代码还需要配置。

  1. 编辑Typecho站点根目录下的config.inc.php
代码语言:javascript
复制
/** 添加如下代码 */
/** 开启HTTPS */
define('__TYPECHO_SECURE__',true);

PHP

  1. 编辑站点主题目录下的 comments.php
代码语言:javascript
复制
$this->commentUrl()
/* 将以上代码替换成一下代码*/
/* 注意:域名最后不要添加“/”这个字符 */
echo str_replace("http","https",$this->commentUrl());

PHP

  1. 更新数据库数据

数据库存的旧数据,比如文件的链接可能是以http开头的,需要换成https。

代码语言:javascript
复制
UPDATE `typecho_contents` SET `text` = replace (`text`, 'http://example.com', 'https://example.com')
/* 链接替换为自己的网站 */
/* 这是我的 */
UPDATE `typecho_contents` SET `text` = replace (`text`, 'http://example.com', 'https://example.com')

SQL

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 简介
  • 详解
    • 配置https
      • http重定向https
      • typecho开启https
      相关产品与服务
      多因子身份认证
      多因子身份认证(Multi-factor Authentication Service,MFAS)的目的是建立一个多层次的防御体系,通过结合两种或三种认证因子(基于记忆的/基于持有物的/基于生物特征的认证因子)验证访问者的身份,使系统或资源更加安全。攻击者即使破解单一因子(如口令、人脸),应用的安全依然可以得到保障。
      领券
      问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档