首页 > 网站 > Nginx > 正文

详解nginx使用ssl模块配置支持HTTPS访问

2024-08-30 12:24:54
字体:
来源:转载
供稿:网友

背景:

项目开发中用到了微信小程序,但是服务器配置URL必须是HTTPS,所以需要通过配置nginx的SSL模块来支持HTTPS访问,也就是说,要做一个网站域名为 dmsdbj.com 要求通过HTTPS://dmsdbj.com进行访问.

SSL英文名为Secure Socket Layer,安全套接字层。SSL是一种数字证书,它使用ssl协议在浏览器和web server之间建立一条安全通道,数据信息在client与server之间的安全传输.

本篇博客是对这个操作步骤的详解。

前提:

1. 配置SSL模块首先需要CA证书,CA证书可以自己手动颁发也可以在阿里云申请,本人在阿里云上申请的证书。(手动颁发可参考文章底部链接)

2. 默认情况下ssl模块并未被安装,如果要使用该模块则需要在编译nginx时指定–with-http_ssl_module参数.

阿里云购买CA证书

操作步骤:

一、下载CA证书

1. 登录阿里云,选择“控制台”-“产品与服务”,在“安全(云盾)”一栏中选择“CA证书服务(数据安全)”。

2.在已经购买好的证书点击“下载”,在新打开的页面上选择“Nginx/Tengine”,点击“下载证书for Nginx”。

二、在Nginx配置文件中安装证书

文件说明:1. 证书文件“证书名称.pem‘',包含两段内容,请不要删除任何一段内容。2. 如果是证书系统创建的CSR,还包含:证书私钥文件“证书名称.key”。( 1 ) 在Nginx的配置文件所在的目录下创建cert文件夹,并且将下载的全部文件拷贝到cert目录中。如果申请证书时是自己创建的CSR文件,请将对应的私钥文件放到cert目录下并且命名为“证书名称.key”;

( 2 ) 打开 Nginx 安装目录下 conf 目录中的 nginx.conf 文件,找到:

# HTTPS server# #server {# listen 443;# server_name localhost;# ssl on;# ssl_certificate cert.pem;# ssl_certificate_key cert.key;# ssl_session_timeout 5m;# ssl_protocols SSLv2 SSLv3 TLSv1;# ssl_ciphers ALL:!ADH:!EXPORT56:RC4+RSA:+HIGH:+MEDIUM:+LOW:+SSLv2:+EXP;# ssl_prefer_server_ciphers on;# location / {###}#}

( 3 ) 将其修改为 (以下属性中ssl开头的属性与证书配置有直接关系,其它属性请结合自己的实际情况复制或调整) :

server {  listen 443;  server_name localhost;  ssl on;  root html;  index index.html index.htm;  ssl_certificate  cert/证书名称.pem;  ssl_certificate_key cert/证书名称.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;  location / {    root html;    index index.html index.htm;  }}            
发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表