网站首页> 文章专栏> Centos7.Net Core网站通过Nginx配置https
Centos7.Net Core网站通过Nginx配置https
日期:2020-08-24 22:57:06 作者:jzlnice 浏览量:531

参考链接:https://blog.csdn.net/weixin_37264997/article/details/84525444

参考链接:https://blog.csdn.net/tyyh08/article/details/80633655?utm_source=blogxgwz1

参考链接:https://www.wandouip.com/t5i198998/

1、nginxssl模块安装

   查看nginx是否安装 http_ssl_module 模块。

   命令:/usr/local/nginx/sbin/nginx -V



如果出现 configure arguments: --with-http_ssl_module, 则已安装(下面的步骤可以跳过,进入 nginx.conf 配置)。

因为https ,要用到http_ssl_module模块,但http_ssl_module并不属于nginx的基本模块所以自己重新编译添加

2、进入之前下载解压的nginx源码包目录,如果没有就重新下载。

  命令:cd /usr/local/nginx-1.18.0

配置ssl模块;

  命令:./configure --prefix=/usr/local/nginx --with-http_ssl_module

使用 make 命令编译(使用make install会重新安装nginx),此时当前目录会出现 objs 文件夹。(这一步千万不能 make install ;不然会把之前已经安装的nginx 覆盖掉)

命令:make

3、覆盖安装

先停掉nginx

命令:systemctl stop nginx.service

用新的 nginx 文件覆盖当前的 nginx 文件。

命令:cp ./objs/nginx /usr/local/nginx/sbin/

(cp: overwrite `/usr/local/nginx/sbin/nginx'? 会提示是否要覆盖,输入y)

4、再次查看安装模块

命令:/usr/local/nginx/sbin/nginx -V


configure arguments: --with-http_ssl_module说明ssl模块已安装

5、重新启动nginx

命令:systemctl start nginx.service

查看是否正常监听80端口


开始配置https

6、开放CentOS系统 443端口

命令:firewall-cmd --zone=public --add-port=443/tcp --permanent

重启防火墙

命令:firewall-cmd --reload

7、配置Nginx监听80端口,反向代理Asp.net Core项目

找到nginx.conf文件,并查看第一个监听80端口的Server,修改成

server {

    listen 80;

    server_name localhost;

    location / {

        proxy_pass http://localhost:5000;

        proxy_http_version 1.1;

        proxy_set_header Upgrade $http_upgrade;

        proxy_set_header Connection keep-alive;

        proxy_set_header Host $host;

        proxy_cache_bypass $http_upgrade;

    }

}

然后查看配置文件是否修改正确,之后重启Nginx

以下命令必须进入 nginx/sbin目录下才能执行

./nginx -v  查看Nginx的版本

./nginx -t  修改完配置文件后查看是否正确

./nginx -s reload 重启Nginx

8、上传证书

  

9、修改nginx.conf文件,将监听443端口的server改成

server {

     listen 443 ssl;

     server_name www.XXX.com; #填写绑定证书的域名

     ssl on;

     ssl_certificate 1_www.XXX.com_bundle.crt;

     ssl_certificate_key 2_www.XXX.com.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;

     location / {

         proxy_pass http://localhost:5000;

         proxy_http_version 1.1;

         proxy_set_header Upgrade $http_upgrade;

         proxy_set_header Connection keep-alive;

         proxy_set_header Host $host;

         proxy_cache_bypass $http_upgrade;

     }

 }

 系统检查配置文件提示“the "ssl" directive is deprecated, use the "listen ... ssl" directive instead in /usr/local/nginx/conf/nginx.conf:105

原因:Nginx 1.15.x 版本在开启ssl的时候不再需要显式的配置 SSL ON

如果配置了,会出现这个警告

解决方案:直接删掉 SSL ON 这个配置就好了

-----------

 listen 443 后面必须加ssl  否则 https请求无法打开,原因后续再查

-----------

修改好后,重启nginx

命令:./nginx -s reload

 

外部用https访问网站正常

来说两句吧
最新评论
    热门文章
      随便看看