nginx SLL配置 the "ssl" parameter requires ngx_http_ssl_module in nginx.c
时间:2020-05-26
本文章向大家介绍nginx SLL配置 the "ssl" parameter requires ngx_http_ssl_module in nginx.c,主要包括nginx SLL配置 the "ssl" parameter requires ngx_http_ssl_module in nginx.c使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
记录一下今天给一个站点配置SSL证书遇到的问题。
申请SSL证书
由于域名在阿里云上购买的,阿里也提供免费的SLL证书申请的渠道,于是打算在阿里云上申请SSL证书。
-
在控制台,找到 “SSL证书(应用安全)”
-
点击购买证书
3.如下图进行选择
-
完成购买并付款,选择“证书控制台”
-
点击 “证书申请”, 填写以下内容
如果域名就在当前的账号下,系统会自己在对应的域名添加解析设置,否则需要自己根据生成的证书内容手动配置。
配置完成后,需要点击验证后再提交审核。
上传证书
提交审核后,正常10分钟左右就会下发
点击下载,选择 nginx 后面的 “下载”
下载完成后,会得到一个 3969078_www.xxxx.cn_nginx.zip
文件,在 /usr/local/nginx/conf
下创建一个 cert
文件夹
mkdir cert
将 3969078_www.xxxx.cn_nginx.zip
文件上传到 /usr/local/nginx/conf/cert
, 解压证书
$ unzip 3969078_www.xxxx.cn_nginx.zip
Archive: 3969078_www.xxxx.cn_nginx.zip
Aliyun Certificate Download
inflating: 3969078_www.xxxx.cn.pem
inflating: 3969078_www.xxxx.cn.key
修改配置
修改站点对应的nginx 配置,添加如下内容(需要将.pem和.key文件名改成你的):
listen 443 ssl;
ssl on;
ssl_certificate cert/3969078_www.xxxx.cn.pem;
ssl_certificate_key cert/3969078_www.xxxx.cn.key;
ssl_session_timeout 5m;
ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
ssl_prefer_server_ciphers on;
underscores_in_headers on;
重载nginx配置
centos7 如果配置了 server 的话可以使用以下命令重载
systemctl reload nginx
没有话使用下面的命令重载
nginx -s reload
我在重载的时候,发现报如下报错了:
nginx: [emerg] the "ssl" parameter requires ngx_http_ssl_module in /usr/local/nginx/conf/nginx.c
这个错误的原因是因为安装nginx的时候没有添加 ssl 模块
添加 nginx ssl模块
我是自己下载源码进行编译安装的,解决方法如下:
- 安装依赖
yum -y install openssl openssl-devel
- 在nginx源码目录执行以下命令,配置ssl模块
./configure --prefix=/usr/local/nginx --with-http_stub_status_module --with-http_ssl_module
make
- 替换 nginx
cp ./objs/nginx /usr/local/nginx/sbin/
- 重启nginx
systemctl restart nginx
这里我遇到一个问题,启动失败了,使用systemctl status nginx
查看提示log文件不存在
$ systemctl status nginx
● nginx.service - nginx
Loaded: loaded (/usr/lib/systemd/system/nginx.service; enabled; vendor preset: disabled)
Active: failed (Result: exit-code) since Tue 2020-05-26 11:14:54 CST; 1min 0s ago
Process: 16838 ExecStop=/usr/local/nginx/sbin/nginx -s quit (code=exited, status=1/FAILURE)
Process: 16812 ExecReload=/usr/local/nginx/sbin/nginx -s reload (code=exited, status=1/FAILURE)
Process: 16913 ExecStart=/usr/local/nginx/sbin/nginx (code=exited, status=1/FAILURE)
Main PID: 32010 (code=exited, status=0/SUCCESS)
May 26 11:14:54 1lin24 systemd[1]: Starting nginx...
May 26 11:14:54 1lin24 systemd[1]: nginx.service: control process exited, code=exited status=1
May 26 11:14:54 1lin24 nginx[16913]: nginx: [alert] could not open error log file: open() "/usr/local/nginx/logs/error.log" failed (2: No su...irectory)
May 26 11:14:54 1lin24 nginx[16913]: 2020/05/26 11:14:54 [emerg] 16913#0: open() "/usr/local/nginx/logs/error.log" failed (2: No such file or directory)
May 26 11:14:54 1lin24 systemd[1]: Failed to start nginx.
May 26 11:14:54 1lin24 systemd[1]: Unit nginx.service entered failed state.
May 26 11:14:54 1lin24 systemd[1]: nginx.service failed.
Hint: Some lines were ellipsized, use -l to show in full.
- 在对应目录下创建丢失的目录
mkdir /usr/local/nginx/logs
- 再次重启nginx即可
systemctl restart nginx
原文地址:https://www.cnblogs.com/1lin24/p/12964684.html
- GO语言利用K近邻算法实现小说鉴黄
- Why Spring Boot
- 如何使用HammerDB进行MySQL基准测试
- 一个不可思议的MySQL慢查分析与解决
- Apache Spark 2.2中基于成本的优化器(CBO)
- golang的HTTP基本认证机制实例详解
- hdu----(3065)病毒侵袭持续中(AC自动机)
- Spark机器学习库(MLlib)指南之简介及基础统计
- 监控利器之 Prometheus
- C线程同步/异步
- Spring-Security-入门(一):登录与退出
- Shell系列-Shell概述
- sqoop2系统入门之2汇总:用户指南shell命令
- 深入解析golang编程中函数的用法
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- 市面上数据库种类那么多,如何选择?
- 玩转正则!推荐一个速查、调试、验证、可视化工具
- 当一个http请求来临时,SpringMVC究竟偷偷帮你做了什么?
- Js实现文本复制
- 当一个http请求来临时,SpringMVC究竟偷偷帮你做了什么?处理器映射器与处理器篇
- anetTcpGenericConnect 详解
- 详解 MySQL 基准测试和sysbench工具
- 第六天:网络处理(anet部分)-- redis源码慢慢学,慢慢看【redis6.0.6】
- python爬王者荣耀壁纸
- 搞定三大神器之 Python 装饰器
- 当一个http请求来临时,SpringMVC究竟偷偷帮你做了什么?请求映射器篇
- rabbitpy使用purge不生效
- Springboot读取自定义属性之集合(list,数组)
- 被遗忘的 10 个Linux命令,很实用!
- Nginx配置中一个不起眼字符"/"的巨大作用,失之毫厘谬以千里