Nginx配置SSL
Author: Abbott Liu(刘建)
Create: 2021/09/18 5:50
Update: 2021/09/18 5:50
在我们下载的证书文件中有一个Nginx的文件夹,这里面的两个文件都是需要的。我们需要把这个两个文件上传到 linux 服务器中,推荐放到/etc/ssl/目录下
然后我们需要去找到nginx的配置文件。
ps -ef | grep nginx
可以看到nginx的目录是/usr/local/nginx
那么我们需要找到 nginx.conf文件并修改
cd /usr/local/nginx/conf
vim nginx.conf
配置文件内容
http {
include mime.types;
default_type application/octet-stream;
sendfile on;
keepalive_timeout 65;
server {
listen 80;
server_name edj365.com;
rewrite ^/(.*)$ https://edj365.com:443/$1 permanent;
#charset koi8-r;
#access_log logs/host.access.log main;
location / {
root html;
index index.html index.htm;
}
#error_page 404 /404.html;
# redirect server error pages to the static page /50x.html
#
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
}
}
# http节点中可以添加多个server节点
server {
#监听443端口
listen 443 ssl;
#对应的域名,把edj365.com改成你们自己的域名就可以了
server_name edj365.com;
#从腾讯云获取到的第一个文件的全路径
ssl_certificate cert/edj365.com.pem; #将domain name.pem替换成您证书的文件名。
ssl_certificate_key cert/edj365.com.key; #将domain name.key替换成您证书的密钥文件名。
ssl_session_timeout 5m;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:HIGH:!aNULL:!MD5:!RC4:!DHE;
ssl_prefer_server_ciphers on;
#这是我的主页访问地址,因为使用的是静态的html网页,所以直接使用location就可以完成了。
location / {
#文件夹
root /usr/local/nginx/html;
#主页文件
index index.html;
}
}
}
/usr/local/nginx/sbin/nginx
报错
nginx: [emerg] the "ssl" parameter requires ngx_http_ssl_module in /usr/local/nginx/conf/nginx.conf:122
开始Nginx的SSL模块
Nginx如果未开启SSL模块,配置Https时提示错误
原因也很简单,nginx缺少http_ssl_module模块,编译安装的时候带上--with-http_ssl_module配置就行了,但是现在的情况是我的nginx已经安装过了,怎么添加模块,其实也很简单,往下看
做个说明:我的nginx的安装目录是/usr/local/nginx
这个目录,我的源码包在/download/nginx-1.19.9
目录
切换到源码包:
cd /download/nginx-1.19.9
# 查看nginx原有的模块
/usr/local/nginx/sbin/nginx -V
在configure arguments:后面显示的原有的configure参数如下:
# 运行命令即可,等配置完
./configure --prefix=/usr/local/nginx --with-http_stub_status_module --with-http_ssl_module
执行make命令,但是不要执行make install,因为make是用来编译的,而make install是安装,不然你整个nginx会重新覆盖的。
make
# 先备份,备份则不用执行
cp /usr/local/nginx/sbin/nginx /usr/local/nginx/sbin/nginx.bak
cp ./objs/nginx /usr/local/nginx/sbin/
然后启动nginx,仍可以通过命令查看是否已经加入成功
/usr/local/nginx/sbin/nginx -V
Nginx配置Http和Https共存
server {
listen 80 default backlog=2048;
listen 443 ssl;
server_name wosign.com;
root /var/www/html;
ssl_certificate /usr/local/Tengine/sslcrt/ wosign.com.crt;
ssl_certificate_key /usr/local/Tengine/sslcrt/ wosign.com .Key;
}
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。