Nginx 配置 HTTPS的详细过程


Posted in Servers onMay 30, 2022

配置站点使用 https,并且将 http 重定向至 https。

1. nginx 的 ssl 模块安装

查看 nginx 是否安装 http_ssl_module 模块。

$ /usr/local/nginx/sbin/nginx -V

Nginx 配置 HTTPS的详细过程

如果出现 configure arguments: --with-http_ssl_module, 则已安装(下面的步骤可以跳过,进入 nginx.conf 配置)。

下载 nginx 安装包, nginx官网1.14.1稳定版本tar.gz包

# 下载安装包到 src 目录
$ cd /usr/local/src
$ wget http://nginx.org/download/nginx-1.14.1.tar.gz

解压安装包。

$ tar -zxvf nginx-1.14.1.tar.gz

配置 ssl 模块。

$ cd nginx-1.14.1
$ ./configure --prefix=/usr/local/nginx --with-http_ssl_module
  • 使用 make 命令编译(使用make install会重新安装nginx),此时当前目录会出现 objs 文件夹。
  • 用新的 nginx 文件覆盖当前的 nginx 文件。
$ cp ./objs/nginx /usr/local/nginx/sbin/

再次查看安装的模块(configure arguments: --with-http_ssl_module说明ssl模块已安装)。

$ /usr/local/nginx/sbin/nginx -V

nginx version: nginx/1.14.1

configure arguments: –with-http_ssl_module

2. ssl 证书部署

  • 下载申请好的 ssl 证书文件压缩包到本地并解压(这里是用的 pem 与 key 文件,文件名可以更改)。
  • 在 nginx 目录新建 cert 文件夹存放证书文件。
$ cd /usr/local/nginx
$ mkdir cert
  • 将这两个文件上传至服务器的 cert 目录里。

这里使用 mac 终端上传至服务器的 scp 命令(这里需要新开一个终端,不要使用连接服务器的窗口):

$ scp /Users/yourname/Downloads/ssl.pem root@xxx.xx.xxx.xx:/usr/local/nginx/cert/
$ scp /Users/yourname/Downloads/ssl.key root@xxx.xx.xxx.xx:/usr/local/nginx/cert/

scp [本地文件路径,可以直接拖文件至终端里面] [<服务器登录名>@<服务器IP地址>:<服务器上的路径>]

3. nginx.conf 配置

编辑 /usr/local/nginx/conf/nginx.conf 配置文件:

  • 配置 https server。

注释掉之前的 http server 配置,新增 https server:

server {
    # 服务器端口使用443,开启ssl, 这里ssl就是上面安装的ssl模块
    listen       443 ssl;
    # 域名,多个以空格分开
    server_name  baidu.com www.baidu.com;
<span class="hljs-comment"># ssl证书地址</span>
<span class="hljs-attribute">ssl_certificate</span>     /usr/local/nginx/cert/ssl.pem;  <span class="hljs-comment"># pem文件的路径</span>
<span class="hljs-attribute">ssl_certificate_key</span>  /usr/local/nginx/cert/ssl.key; <span class="hljs-comment"># key文件的路径</span>

<span class="hljs-comment"># ssl验证相关配置</span>
<span class="hljs-attribute">ssl_session_timeout</span>  <span class="hljs-number">5m</span>;    <span class="hljs-comment">#缓存有效期</span>
<span class="hljs-attribute">ssl_ciphers</span> ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4;    <span class="hljs-comment">#加密算法</span>
<span class="hljs-attribute">ssl_protocols</span> TLSv1 TLSv1.<span class="hljs-number">1</span> TLSv1.<span class="hljs-number">2</span>;    <span class="hljs-comment">#安全链接可选的加密协议</span>
<span class="hljs-attribute">ssl_prefer_server_ciphers</span> <span class="hljs-literal">on</span>;   <span class="hljs-comment">#使用服务器端的首选算法</span>

<span class="hljs-attribute">location</span> / {
    <span class="hljs-attribute">root</span>   html;
    <span class="hljs-attribute">index</span>  index.html index.htm;
}}

将 http 重定向 https

server {
    listen       80;
    server_name  baidu.com www.baidu.com;
    return 301 https://$server_name$request_uri;
}

4. 重启 nginx

$ /usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/nginx.conf

如果 80 端口被占用,用kill [id]来结束进程:

# 查看端口使用
$ netstat -lntp

Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
tcp 0 0 0.0.0.0:80 0.0.0.0: LISTEN 21307/nginx: master
tcp 0 0 0.0.0.0:22 0.0.0.0: LISTEN 3072/sshd
tcp 0 0 0.0.0.0:443 0.0.0.0? LISTEN 21307/nginx: master

# 结束 80 端口进程
$ kill 21307

再次重启 nginx :

无信息提示就成功啦~

到此这篇关于Nginx 配置 HTTPS 完整过程的文章就介绍到这了!


Tags in this post...

Servers 相关文章推荐
Nginx下配置Https证书详细过程
Apr 01 Servers
windows下快速安装nginx并配置开机自启动的方法
May 11 Servers
Nginx如何配置Http、Https、WS、WSS的方法步骤
May 11 Servers
nginx配置文件使用环境变量的操作方法
Jun 02 Servers
关于Nginx中虚拟主机的一些冷门知识小结
Mar 03 Servers
Minikube搭建Kubernetes集群
Mar 31 Servers
Kubernetes部署实例并配置Deployment、网络映射、副本集
Apr 01 Servers
Nginx配置根据url参数重定向
Apr 11 Servers
Docker官方工具docker-registry案例演示
Apr 13 Servers
Linux中如何安装并部署Redis
Apr 18 Servers
Apache SeaTunnel实现 非CDC数据抽取
May 20 Servers
nginx设置资源请求目录的方式详解
May 30 Servers
关于windows server 2012 DC 环境 重启后蓝屏代码:0xc00002e2的问题
May 25 #Servers
聊聊配置 Nginx 访问与错误日志的问题
May 25 #Servers
利用nginx搭建RTMP视频点播、直播、HLS服务器
详解Nginx的超时keeplive_timeout配置步骤
May 25 #Servers
nginx 配置指令之location使用详解
May 25 #Servers
zabbix配置nginx监控的实现
May 25 #Servers
nginx 添加http_stub_status_module模块
May 25 #Servers
You might like
全国FM电台频率大全 - 27 陕西省
2020/03/11 无线电
PHP页面间传递参数实例代码
2008/06/05 PHP
兼容ie6浏览器的php下载文件代码分享
2014/07/14 PHP
基于PHP实现的事件机制实例分析
2015/06/18 PHP
PHP生成各种随机验证码的方法总结【附demo源码】
2017/06/05 PHP
(转载)JavaScript中匿名函数,函数直接量和闭包
2007/05/08 Javascript
js中 关于undefined和null的区别介绍
2013/04/16 Javascript
深入理解JQuery中的事件与动画
2016/05/18 Javascript
深入理解jquery中extend的实现
2016/12/22 Javascript
javascript实现二叉树的代码
2017/06/08 Javascript
JavaScript中document.referrer的用法详解
2017/07/04 Javascript
vue 项目如何引入微信sdk接口的方法
2017/12/18 Javascript
vue中使用refs定位dom出现undefined的解决方法
2017/12/21 Javascript
Angular数据绑定机制原理
2018/04/17 Javascript
用react-redux实现react组件之间数据共享的方法
2018/06/08 Javascript
Vue记住滚动条和实现下拉加载的完美方法
2020/07/31 Javascript
Openlayers+EasyUI Tree动态实现图层控制
2020/09/28 Javascript
[03:01]DOTA2英雄基础教程 露娜
2014/01/07 DOTA
[46:23]完美世界DOTA2联赛PWL S2 FTD vs Magma 第一场 11.20
2020/11/23 DOTA
Windows下的Python 3.6.1的下载与安装图文详解(适合32位和64位)
2018/02/21 Python
python安装模块如何通过setup.py安装(超简单)
2018/05/05 Python
使用Django启动命令行及执行脚本的方法
2018/05/29 Python
Python pymongo模块常用操作分析
2018/09/01 Python
解决django中ModelForm多表单组合的问题
2019/07/18 Python
Python使用turtle库绘制小猪佩奇(实例代码)
2020/01/16 Python
python判断变量是否为int、字符串、列表、元组、字典的方法详解
2020/02/13 Python
基于Python生成个性二维码过程详解
2020/03/05 Python
python Cartopy的基础使用详解
2020/11/01 Python
领导班子党的群众路线教育实践活动对照检查材料
2014/09/25 职场文书
2014年学习委员工作总结
2014/11/14 职场文书
求职简历自我评价2015
2015/03/10 职场文书
行政人事主管岗位职责
2015/04/11 职场文书
欠款纠纷起诉状
2015/05/19 职场文书
运动会观后感
2015/06/09 职场文书
立春观后感
2015/06/18 职场文书
2015年社区国庆节活动总结
2015/07/30 职场文书