Nginx SSL 配置

本文详细介绍了如何在Nginx服务器上配置SSL证书,包括安装SSL模块、上传证书文件和修改nginx.conf配置,使后台接口支持HTTPS,适用于微信公众号和小程序等场景。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

SSL证书是数字证书的一种,类似于驾驶证、护照和营业执照的电子副本。因为配置在服务器上,也称为SSL服务器证书。SSL 证书就是遵守 SSL协议,由受信任的数字证书颁发机构CA,在验证服务器身份后颁发,具有服务器身份验证和数据传输加密功能。

当前在部署后台程序时,如微信公众号、小程序时都需要网站支持https,本文档主要如何让后台接口支持SSL,通过Nginx。

前置条件:

操作系统: centos6

Nginx: 版本:1.12.1,源码目录:/opt/nginx-1.12.1,安装目录:/usr/local/nginx/

SLL证书: 通过阿里云申请了免费域名证书

62fa5d628b9c132fd91afb1ae27ea7f2788.jpg

在Nginx安装SLL模块

通过SecureCRT登录到服务器:

1、是否安装SSL模块

/usr/local/nginx/sbin/nginx -v       //查看nginx安装的模块

7fe58b454658e6f177aaa9d7f21488ed110.jpg

如果执行命令之后如果展示了上图红色中的部分就表示已经安装了SSL模块,如果未展示表示未安装。如果安装了就不用执行下一章节,可以直接进行配置章节。

2、安装SSL模块

切换到源码包

cd /opt/nginx-1.12.1/

增加SSL模块

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

执行make

make

备份原有nginx

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

把新编译好的包覆盖原有的nginx,执行此命令时nginx必须在停止状态(nginx -s stop)

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

执行上面命令时出现以下问题需要处理:

如提醒如下信息:

        cp:是否覆盖"/usr/local/nginx/sbin/nginx" y

        cp: 无法创建普通文件"/usr/local/nginx/sbin/nginx": 文本文件忙

        nginx二进制文件繁忙,可以停止nginx,再试一次就可以了)

790341c8ab4e807d56820e1080edafeeb8d.jpg

执行完成以后就可以启动nginx了,可以再执行一次,看看nginx是否已经成功安装SSL了

/usr/local/nginx/sbin/nginx -v       //查看nginx安装的模块

7fe58b454658e6f177aaa9d7f21488ed110.jpg

上传证书文件

    从阿里云下载申请的免费SSL证书,并上传到nginx/conf/cert目录中。cert目录如果不存在,需要创建。

489939e3233206474e717bef5bc96daf893.jpg

配置nginx中的nginx.conf文件

本文配置的是https与http共存,可以使用http和https访问网站。

nginx.conf配置文件位于/usr/local/nginx/conf/nginx.conf

原文件内容如下:

server {
        listen       80;
        server_name  localhost;

        #charset koi8-r;

        #access_log  logs/host.access.log  main;

        location / {
            root   html;
            index  index.html index.htm;
        }

}

原配置中只支持通过http访问,只需要增加支持https访问即可

    server {
        listen       80;
		listen	443 ssl;      #增加ssl访问支持
        server_name  localhost;
            #配置ssl证书文件
    		ssl_certificate   cert/214938964360088.pem;
    		ssl_certificate_key  cert/214938964360088.key;
    		ssl_session_timeout 5m;
            ##指定加密算法
    		ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4;
    		#指定SSL服务器端支持的协议版本
            ssl_protocols TLSv1 TLSv1.1 TLSv1.2;    
   		 	#在使用SSLv3和TLS协议时指定服务器的加密算法要优先于客户端的加密算法
            ssl_prefer_server_ciphers on;
        
        
        #charset koi8-r;

        #access_log  logs/host.access.log  main;

        location / {
            root   html;
            index  index.html index.htm;
        }
        

    }

完成以上配置之后,重启nginx就完成了配置。

重启之后,就可以通过http和https两个协议访问网站了

8f60fa09a0a42498bd7f8bb1ad80c4c2467.jpg

ca01c0de76eb8c08022821420cb3732865a.jpg

转载于:https://my.oschina.net/sdlvzg/blog/1933369

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值