nginx配置监听443端口,开启ssl协议,走 https 访问

这篇具有很好参考价值的文章主要介绍了nginx配置监听443端口,开启ssl协议,走 https 访问。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

前言

最近有个项目需要上线到浙政钉工作台,那边要求项目走 https 访问,但是服务器没有进行相应的配置一直都是走的 http,于是乎对服务器进行的一番配置,注明:linux 服务器 ,记录一下相关的踩坑记录,以及完整版的成功配置流程。

一、检查 linux 服务器上的 nginx 是否安装 ssl 模块

各位找到各自服务器上的 nginx 安装目录,下面有个 sbin 文件夹,来到 sbin 目录下执行 ./nginx -V命令,注意是大写的 v,小写的 v 只会展示 nginx 的版本号信息。执行完出现下图圈红的这些信息说明 ssl 模块已经安装过了。可以忽略下文的 ssl 模块安装的相关内容,直接看 nginx 配置的内容。

cd /usr/local/nginx/sbin
./nginx -V

nginx配置监听443端口,开启ssl协议,走 https 访问

二:为 nginx 安装 ssl 模块

如果没有安装 ssl 模块,即使你成功的配置好 https 的相关配置,网站也依旧不能使用 https,会提示诸如:无法提供安全连接、TLS协议不支持呀等问题。ssl 模块的安装是为了能让后端接口得以使用 https 的方式调用。找到我们的 nginx 安装解压包,我这里是放在 /usr/local/software 目录下,然后执行如下命令进入到 nginx-1.18.0 目录下。

cd /usr/local/software/nginx-1.18.0

nginx配置监听443端口,开启ssl协议,走 https 访问
nginx配置监听443端口,开启ssl协议,走 https 访问

来到 ngixn-1.18.0 目录 然后依次执行如下这三条命令

./configure --with-http_ssl_module
make
make install

由于我已经安装过了给大家看一下我当时执行的历史命令,也是这些。

nginx配置监听443端口,开启ssl协议,走 https 访问

安装好 ssl 之后,我们发现 nginx-1.18.0 安装包的 objs 目录下有如下这些文件,直接拷贝到 nginx 安装目录下的 sbin 文件夹下面。

nginx配置监听443端口,开启ssl协议,走 https 访问
nginx 默认的安装路径一般都在 /usr/local/nginx 这个位置,拷贝完成后 sbin 目录长这样。
nginx配置监听443端口,开启ssl协议,走 https 访问
到此 nginx ssl模块安装成功,切回 nginx 的安装目录接着执行如下命令,发现已经安装成功了。

cd /usr/local/nginx/sbin
./nginx -V

三、nginx 开启 443 端口监听(https配置)

由于 https 默认是走 443 端口的,于是我们需要在 nginx.conf 中配置 443端口的监听,然后里面配置证书路径配一下就好了,这里我是用的 pem 证书。

server {
    listen       80;
    server_name  你的域名;
    #return 301 https://$server_name$request_uri; 
    location / {
        index index.html;
        alias /usr/local/nginx_static/dist/;
        #autoindex on;
    }
    location /fmphone {
        index index.html;
        alias /usr/local/nginx_static/dist2/;
    }
}
server {
    listen 443 ssl;
    server_name 你的域名;
    ssl_certificate     证书linux绝对路径;
    ssl_certificate_key 证书linux绝对路径;
    ssl_session_timeout 5m;
    ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH;
    ssl_protocols TLSv1;
    ssl_prefer_server_ciphers on;
}

由于我这里有些项目需要接着走 http ,有些项目走 https ,我并没有开启全局 http 转 https ,也就是没有放开这行代码。这里需要注意的是,当放开这行代码后,监听 80 端口的 service 里面的 location 就会失效,因为请求全转发到 443 端口了,对应的 location 也要挪到 443 对应的那个 service 里面。我这里 location 写到了 80 端口对应的 service 里面是因为,我有些项目要走 http 有些要走 https,配的 http 与 https 共存(他们都是用的 80 service 里面的location),一个项目既可以通过 http 访问,也可以通过 https 访问,对应的 location 只能写到 80 对应的 service 里面,写到 443 对应的 service 会失效。这里大家需要注意一下哦。

return 301 https://$server_name$request_uri; 

成功配好后的效果如下

可以看到走 https 访问连接是安全的了。
nginx配置监听443端口,开启ssl协议,走 https 访问

遇到的问题一:证书无效

当我们都配置好后,发现走 https 能正常访问项目,但是居然还提示是不安全的连接?这种情况我们只需要点不安全几个字,查看证书就好了,查看证书有效期,发现原来是我的证书过期了,一万个草泥马涌上心头,在这里,我们需要注意对应证书对应的域名是不是一致的,证书对应的域名=证书查看器后面那一坨。如果不一致会爆你证书与域名不匹配的错。

nginx配置监听443端口,开启ssl协议,走 https 访问

遇到的问题二:连公司的网络走 https 能访问项目、外网无法访问项目

一开始我连着公司的一个 wifi 测试发现一切正常,第二天上班一觉醒来,发现项目无法访问了,找了一上午原因,无意间换了个 wifi 诶嘿居然又正常了,换另外一个 wifi 诶嘿又不正常了,于是乎我就想到 wifi 有鬼,一个是内网 wifi 一个是外网 wifi。

这种一般都是防火墙的问题,我们先排查一下 linux 服务器防火墙是否拦截了 443 端口。执行如下命令

systemctl status firewalld

可以看到物理防火墙压根都没开启。于是乎你真就觉得不是防火墙的问题了吗?
nginx配置监听443端口,开启ssl协议,走 https 访问

linux还有一个云防火墙呢,反馈给领导让他去联系运维人员去配置云防火墙开启对外网访问的支持。

遇到的问题三:nginx转发后端请求session丢失

这几天把我手底下负责的项目 http 全部改成 https 了。有些项目用到了 session ,改成 https 后,每次刷新接口 session 都不一致的 bug,看了一眼这台服务器的 nginx 配置文件,发现后端代理是配置了,proxy_cookie_path 也配置了,但是配错了!!!!!!下面的是正确的配置,转发后的请求为 http://127.0.0.1:8080/serviceTrade/ ,下图配置代表把前缀为 /serviceTrade 的 cookie 携带到 /serviceapi/serviceTrade/ 路径下,而前端调用接口是通过 /serviceapi/serviceTrade/ 路径访问的,这样一来就解决了 session 传递的问题。

server {
    listen       80;
    server_name  域名;
    location /serviceapi/serviceTrade/ {
        proxy_pass http://127.0.0.1:8080/serviceTrade/;
        proxy_set_header Host       $http_host;
        proxy_set_header X-Real-IP $remote_addr;  
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;  
        proxy_set_header X-Forwarded-Proto $scheme;
        proxy_cookie_path /serviceTrade /serviceapi/serviceTrade/;
        proxy_set_header Cookie $http_cookie;
    }
}

🌹🌹🌹🌹🌹🌹🌹🌹🌹🌹🌹到此终于又可以安心睡大觉了🌹🌹🌹🌹🌹🌹🌹🌹🌹🌹🌹🌹🌹🌹🌹🌹🌹🌹

小咸鱼的技术窝

关注不迷路,日后分享更多技术干货,B站、CSDN、微信公众号同名,名称都是(小咸鱼的技术窝)更多详情在主页
nginx配置监听443端口,开启ssl协议,走 https 访问文章来源地址https://www.toymoban.com/news/detail-462145.html

到了这里,关于nginx配置监听443端口,开启ssl协议,走 https 访问的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • docker中使用nginx配置ssl证书,443端口无法连接

    环境:docker + 云服务器+域名 准备:下载ssl证书文件,安全组开放443端口, nginx容器映射443端口 (切记!!!我就是这里忘记配置, 结果弄了好久); 如果上面操作都做好了,在nginx也配置了,但是还是有问题,那么就是你的nginx没有映射443端口,博主这里就是踩了这个坑,话不多说

    2024年02月07日
    浏览(38)
  • SpringBoot + Vue2项目打包部署到服务器后,使用Nginx配置SSL证书,配置访问HTTP协议转HTTPS协议

    配置nginx.conf文件,这个文件一般在/etc/nginx/...中,由于每个人的体质不一样,也有可能在别的路径里,自己找找... 证书存放位置,可自定义存放位置 两个文件 后端配置 把.pfx拷贝到resource下,然后配置一下yml

    2024年02月02日
    浏览(51)
  • docker中使用nginx配置腾讯云ssl证书,443端口无法连接

    环境:docker + 腾讯云轻量应用服务器+腾讯云域名 准备:首先需要去腾讯云域名下载ssl证书文件,创建安全组开放443端口,服务器防火墙开放443端口; 如果上面操作都做好了,在nginx也配置了,但是还是有问题,那么就是你的nginx没有映射443端口,博主这里就是踩了这个坑,话

    2024年02月11日
    浏览(45)
  • Nginx配置HTTPS跳转到非443端口的技巧和注意事项

    近一段时间由于看到v*云服务厂商有活动,就注册并开了台云服务器,试一下区别。 (“充10美元送30天内有效的250美元的免费额度,意思是30天内在 你加起来 不超出250美元的 服务随便开,但是注意的是30天后这就不免费了,记得及时关闭。只支持paypal,而阿里alipay一般是充值

    2023年04月18日
    浏览(39)
  • SpringBoot配置SSL证书,开启HTTPS安全访问!!!

    一、前言 二、SpringBoot中配置SSL 1、环境 2、客户端单向认证服务端代码实战-PFX格式的证书 3、HTTP 转HTTPS 通过HTTP协议传输数据,并不会对数据进行加密,所以存在着一定的风险,容易被抓包破解数据,而且现在各种浏览器对使用HTTP协议的网站也会提示不安全。通过将HTTP协议

    2024年02月11日
    浏览(39)
  • SpringBoot Tomcat 配置https 且443端口也是https(若依为例对接微信小程序的https,小程序也可以访问)

    1   服务器去下载免费的证书(选在tomcat jks版本的)  2   将下载的证书移动到resources目录下  3 改写yml配置文件  9898 为https 对应的端口 key-store中注释的为你的域名 key-password为刚刚下载的第二个txt文件中的内容 key-store-password和key-password是一样的 key-alias 为你自己的域名  4

    2024年02月13日
    浏览(30)
  • nginx配置ssl证书使用https访问

    一:申请证书,我使用的是阿里云免费证书 二:下载证书,解压到服务器上 两个文件:www.xx.com.pem和www.xx.com.key 三:打开配置文件/usr/local/nginx/conf/nginx.conf 放开端口443,替换ssl_certificate和ssl_certificate_key为自己证书路径    server {         listen       443 ssl;         server_na

    2024年01月20日
    浏览(47)
  • Nginx配置ssl证书实现https安全访问

    目录 一、Nginx的安装与配置 安装步骤 二、SSL证书获取 三、Nginx配置 前题条件,拥有服务器与可以解析到该服务器的自己的域名。 若已安装好了Nginx,则需查看自己的Nginx是否开启了SSL的模块功能:  显示如上,则代表ssl功能已开启,否则可能出现以下错误提示: nginx: [emer

    2024年02月15日
    浏览(29)
  • Linux nginx实现访问,配置ssl证书实现https访问

    注意:服务器需要开通80端口 (1)alias: alias指定的路径是location的别名,不管location的值怎么写,资源的 真实路径都是 alias 指定的路径 例如:同样请求 http://xxx.com/upload/top.gif 时,在服务器查找的资源路径是: /www/wwwroot/upload/top.gif (2)root:真实的路径是root指定的值加上

    2024年02月01日
    浏览(44)
  • 腾讯云轻量应用服务器开启443端口,使用ssl功能的必要步骤

    腾讯云轻量应用服务器默认是不开启443端口的,这里指的是腾讯云管理界面中可以看到,不是指在服务器操作系统中的防火墙规则。如果开启了443应用但是外部访问不到,需要在腾讯云控制台中增加对443的访问规则。 需要注意,腾讯云的帮助文档介绍的操作与当前的实际界面

    2024年02月12日
    浏览(33)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包