Nginx 配置文件,开启ssl访问时,报出错误信息:

nginx: [emerg] the "ssl" parameter requires ngx_http_ssl_module in /usr/local/nginx/conf/nginx_proxy.mimvp.com.conf:76

原因分析:

nginx缺少http_ssl_module模块,编译安装的时候带上 --with-http_ssl_module 配置就行了

但是现在的情况是nginx已经安装过了,怎么添加模块,其实也很简单

我的nginx的安装目录是 /usr/local/nginx/ 这个目录,我的源码包在/opt/nginx-1.13.0/目录

 

安装 openssl

方法1:brew命令安装

brew install openssl

 

方法2:源码编译安装(推荐

1. 下载 openssl

Github官网: https://github.com/openssl/openssl

下载zip包: openssl-master.zip

 

2. 解压

unzip openssl-master.zip

sudo cp openssl-master /opt/openssl-1.1.1-dev

 

3. 安装

sudo ./config --prefix=/usr/local/openssl
sudo make && sudo make install

export KERNEL_BITS=64
sudo ./config darwin64-x86_64-cc  --prefix=/usr/local/openssl
sudo make && sudo make install

 

Nginx开启SSL模块

切换到源码包:

cd /opt/nginx-1.13.0/

 

查看nginx原有的模块

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

nginx version: nginx/1.13.0
built by clang 8.1.0 (clang-802.0.42)
configure arguments: --user=www --group=www --prefix=/usr/local/nginx --with-http_stub_status_module

 

在configure arguments:后面显示的原有的configure参数如下:

--prefix=/usr/local/nginx --with-http_stub_status_module

 

那么我们的新配置信息就应该这样写:

./configure --prefix=/usr/local/nginx --with-http_stub_status_module --with-http_ssl_module

./configure  --prefix=/usr/local/nginx --with-http_ssl_module --with-openssl=/usr/local/openssl

 

运行上面的命令即可,等配置完

配置完成后,运行命令

sudo make

这里不要进行make install,否则就是覆盖安装

需要先备份原有已安装好的 nginx 命令

cp /usr/local/nginx/sbin/nginx /usr/local/nginx/sbin/nginx.bak

 

然后将刚刚编译好的nginx覆盖掉原有的nginx(注意:nginx要是停止状态)

cp ./objs/nginx /usr/local/nginx/sbin/

 

然后启动nginx,仍可以通过命令查看是否已经加入成功

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

nginx version: nginx/1.13.0
built by clang 8.1.0 (clang-802.0.42)
built with OpenSSL 1.1.1-dev  xx XXX xxxx
TLS SNI support enabled
configure arguments: --prefix=/usr/local/nginx --with-http_ssl_module

 

Nginx 配置 ssl 步骤

Nginx使用ssl模块配置HTTPS

 

Nginx 配置Http和Https共存

server {
	listen 80 default backlog=2048;
	listen 443 ssl;

	server_name mimvp.com;
	root /var/www/html;
	ssl_certificate /usr/local/Tengine/sslcrt/ mimvp.com.crt;
	ssl_certificate_key /usr/local/Tengine/sslcrt/ mimvp.com.Key;
}

把ssl on;这行去掉,ssl写在443端口后面。这样http和https的链接都可以用

 

Nginx 配置SSL安全证书重启避免输入密码

可以用私钥来做这件事。生成一个解密的key文件,替代原来key文件。

openssl rsa -in server.key -out server.key.unsecure

 

Nginx SSL性能调优

ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
ssl_ciphers ECDHE-RSA-AES256-SHA384:AES256-SHA256:RC4:HIGH:!MD5:!aNULL:!eNULL:!NULL:!DH:!EDH:!AESGCM;
ssl_prefer_server_ciphers on;
ssl_session_cache shared:SSL:10m;
ssl_session_timeout 10m;

 

 

参考推荐

Mac OS X 安装 Nginx

mac 安装nginx

https 免费证书申请与安装

httpd使用ssl模块配置HTTPS

Nginx使用ssl模块配置HTTPS

LNMP(linux+nginx+mysql+php)服务器环境配置

构建基于Nginx的web服务器

CentOS安装Nginx (推荐)