nginx配置https访问

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

为什么需要使用HTTPS,因为HTTP不安全,当使用http进行消息传输时,可能会遭到黑客的劫持和篡改,如果采用https协议,那么数据在传输过程中是加密的,所以黑客无法窃取或者篡改数据报文信息,同时也避免网站传输时信息泄露。

实现https:需要使用ssl协议。

一、证书简介


首先需要申请证书,先去登记机构进行身份登记,然后登记机构再通过CSR发给CA,CA中心通过后会生成一堆公钥和私钥,公钥会在CA证书链中保存,公钥和私钥证书被部署在WEB服务器上

  1. 当浏览器访问https站点时,会去请求我们的证书

  1. Nginx的web服务器会将公钥证书发给浏览器

  1. 浏览器再去验证证书是否合法有效

  1. CA机构会将过期的证书放置在CRL服务器,CRL服务的验证效率是非常差的,所以CA又推出了OCSP响应程序,OCSP响应程序可以查询指定的一个证书是否过期,所以浏览器可以直接查询OSCP响应程序,但OSCP响应程序性能还不是很高

  1. Nginx会有一个OCSP的开关,当我们开启后,Nginx会主动上OCSP上查询,这样大量的客户端直接从Nginx获取证书是否有效

1.1 证书的类型

对比

域名型 DV

企业型 OV

增强型 EV

绿色地址栏

小锁标记+https

小锁标记+https

小锁标记+企业名称+https

一般用途

个人站点和应用; 简单的https加密需求

电子商务站点和应用; 中小型企业站点

大型金融平台; 大型企业和政府机构站点

审核内容

域名所有权验证

全面的企业身份验证; 域名所有权验证

最高等级的企业身份验证; 域名所有权验证

颁发时长

10分钟-24小时

3-5个工作日

5-7个工作日

单次申请年限

1年

1-2年

1-2年

1.2 https注意事项

https不支持续费,证书到期需要重新申请并进行替换

https不支持三级域名解析,如 test.aa.bb.com

https显示绿色,说明整个网站的url都是https的

https显示黄色,因为网站代码中包含http的不安全链接

https显示红色,那么证书是假的或者证书过期。

二、nginx配置https


2.1 安装nginx

以安装nginx-1.23.3为例:

#下载nginx
wget http://nginx.org/download/nginx-1.23.3.tar.gz
#解压
tar -zxvf nginx-1.23.3.tar.gz
cd nginx-1.23.3
#安装主要依赖包
yum install -y libxml2 libxslt libxslt-devel libxml2-devel gd gd-devel geoip-devel
#编译
./configure \
--prefix=/usr/local/nginx \
--with-threads \
--with-file-aio \
--with-http_ssl_module \
--with-http_v2_module \
--with-http_realip_module \
--with-http_addition_module \
--with-http_xslt_module \
--with-http_image_filter_module \
--with-http_geoip_module \
--with-http_sub_module \
--with-http_dav_module \
--with-http_flv_module \
--with-http_mp4_module \
--with-http_gunzip_module \
--with-http_gzip_static_module \
--with-http_auth_request_module \
--with-http_random_index_module \
--with-http_degradation_module \
--with-http_slice_module \
--with-http_stub_status_module \
--with-stream \
--with-stream_ssl_module \
--with-stream_ssl_preread_module
#安装
make && make install

2.2 关于证书

可以去阿里云或者腾讯云免费申请,或者用openssl命令自制证书;

  • 阿里云申请地址

https://yundun.console.aliyun.com/?p=cas#/overview

  • openssl自制证书

#创建证书目录
[root@centos7 ~]# mkdir -p /usr/local/nginx/cert
[root@centos7 ~]# cd /usr/local/nginx/cert

##使用openssl命令充当CA权威机构创建证书(生产不使用此方式生成证书,不被互联网认可的黑户证书)
#创建证书
[root@centos7 cert]# openssl genrsa -idea -out server.key 2048
Generating RSA private key, 2048 bit long modulus
............+++
..................+++
e is 65537 (0x10001)
Enter pass phrase for server.key:                            #输入密码1234
Verifying - Enter pass phrase for server.key:                #再次确认密码1234
#生成自签证书,同时去掉私钥的密码
[root@centos7 cert]# openssl req -days 36500 -x509 -sha256 -nodes -newkey rsa:2048 -keyout server.key -out server.crt
Generating a 2048 bit RSA private key
..+++
........................................................+++
writing new private key to 'server.key'
-----
You are about to be asked to enter information that will be incorporated
into your certificate request.
What you are about to enter is what is called a Distinguished Name or a DN.
There are quite a few fields but you can leave some blank
For some fields there will be a default value,
If you enter '.', the field will be left blank.
-----
Country Name (2 letter code) [XX]:CN            # 国家名,最多2个字符
State or Province Name (full name) []:CQ        # 省全称
Locality Name (eg, city) [Default City]:Cq        # 城市全称
Organization Name (eg, company) [Default Company Ltd]:test    # 组织机构名称
Organizational Unit Name (eg, section) []:test                # 组织单位名称
Common Name (eg, your name or your server's hostname) []:www.test.com    # 证书要保护的域名
Email Address []:137708020@qq.com                # email

2.3 配置ssl

修改nginx配置文件,开启https文章来源地址https://www.toymoban.com/news/detail-815455.html

server {
    listen 443 ssl;
    server_name    127.0.0.1;
    #填写证书文件名称
    ssl_certificate /usr/local/nginx/cert/server.crt;
    #填写证书私钥文件名称  
    ssl_certificate_key /usr/local/nginx/cert/server.key;

    ssl_session_timeout 5m;
    #表示使用的加密套件的类型
    ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4;
    #表示使用的TLS协议的类型,您需要自行评估是否配置TLSv1.1协议。
    ssl_protocols TLSv1.1 TLSv1.2 TLSv1.3;

    ssl_prefer_server_ciphers on;

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

2.4 将 http 重定向 https

server {
    listen 80;
    server_name 127.0.0.1;
    #将请求转成https
    #早期写法
    rewrite ^(.*)$ https://$host$1;
    #最新写法
    return      301 https://$server_name$request_uri; 
}

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

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

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

相关文章

  • nginx配置SSL证书配置https访问网站 超详细(附加配置源码+图文配置教程)

    最近在阿里云上入手了一台云服务器,准备搭建一套java程序,在 Nginx 配置SSL证书时,配上之后前端可以正常以https的方式打开,但是访问不到后端,自己也是明明知道是 Niginx 配置的问题,但就不知道错哪了,当时心里的那种感觉真是无法表达呜呜呜… 经过排查发现 前端访

    2024年02月11日
    浏览(50)
  • nginx配置监听443端口,开启ssl协议,走 https 访问_nginx 443(1)

    先自我介绍一下,小编浙江大学毕业,去过华为、字节跳动等大厂,目前阿里P7 深知大多数程序员,想要提升技能,往往是自己摸索成长,但自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前! 因此收集整理了一份《2024年最新Linux运维全套学习资料》,

    2024年04月22日
    浏览(46)
  • linux 下生成ssl自签证书, 并配置nginx通过https访问

    因为映射了域名,需要升级为https,由于是IP地址访问,所以生成自签名证书并设置nginx 这里服务端和客户端的Organization Name (eg, company)以及Organizational Unit Name都必须要和CA的不一样才可以

    2024年02月11日
    浏览(44)
  • 【Java开发】Spring Cloud 11:Gateway 配置 ssl 证书(https、http、域名访问)

    最近研究给微服务项目配置 ssl 证书,如此才可以对接微信小程序(需要使用 https 请求)。传统单体项目来说,首先往项目中添加证书文件,然后在配置文件中配置 ssl 证书路径、密码等相关信息;那么微服务这么多项目,总不能一个个配置 ssl 证书,最后发现可以直接通过网

    2024年02月08日
    浏览(77)
  • Nginx配置同时支持http和https两种方式访问

    http: https: Nginx的ssl模块安装 进入到目录的sbin目录下,输入 如果出现 (configure arguments: --with-http_ssl_module), 则已安装(下面的步骤可以跳过,直接进行第五步)。 一般情况下都是不存在ssl模块的,接下来进入到你的解压缩后的nginx目录,注意这里不是nginx安装目录,是解压缩后

    2024年02月13日
    浏览(51)
  • Nginx 域名SSL证书配置(网站 http 升级为 https) acme.sh 申请免费SSL永久证书(自动续期)

    小编这里用的是godaddy购买的域名 服务器是aws acme.sh GitHub地址  https://github.com/acmesh-official/acme.sh 配合nginx进行部署,后面会贴上nginx.conf 我这里是多个域名用同一个证书    首先你得在自己服务器上面进行部署nginx,如果不知道怎么操作的,可以参考我这一篇博客,执行到这一

    2024年01月24日
    浏览(60)
  • 配置SSl证书后,https访问,页面获取的url却是http,导致页面资源无法加载

    有个朋友来问,为什么我配置完ssl证书之后,https可以正常访问,但是页面中的资源却无法正常加载。 打开浏览器调试页报错如图: 废话不多说直接处理问题: 方式一: 这页面head标签内 添加 meta标签配置, 内容如下: 或者直接修改页面资源地址 加上 https:// 如果使用requ

    2024年02月09日
    浏览(61)
  • Nginx配置https网站访问第三方节点的http资源

    https网站无法直接下载http网站的文件。解决思路有以下几种情况:1.两个网站都同时改为http或https。2.通过nginx转发。3.通过后端java代码获取对方网站的文件流然后把流返回给前端 本文介绍如果通过nginx转发访问http网站 配置规则一: 这样配置之后,本地网站比如是:访问htt

    2024年02月16日
    浏览(53)
  • liunx nginx配置ssl 配置https 及访问失败问题排查(fopen:No such file or )([emerg] the “ssl“ parameter requires)

    1.ssl证书下载 比如腾讯云下载目录: 首先在网址(阿里云、腾讯云等)找到域名ssl下载,下载后解压里面有xxx.yey、xxx.pem、xxx.crt等文件 在服务器nginx配置里新建个文件夹,如我的nginx 在 /usr/local/nginx这个目录 2.将ssl证书文件拷贝至服务器 如: 3.检查有没有ssl插件(nginx -V 中V大写

    2024年02月13日
    浏览(47)
  • windows10下设置本地apache\nginx站点部署ssl证书,使本地配置的域名可以用https访问

    首先我们需要下载openssl来生成证书文件: 去官方网址下载https://slproweb.com/products/Win32OpenSSL.html; 下载好了,双击exe文件,然后就下一步,下一步安装完成; 安装之后配置环境变量,新建一个系统变量OPENSSL_HOME,值就是你安装目录下的bin,然后在系统变量path,增加%OPENSSL_HO

    2024年02月15日
    浏览(47)

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

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

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

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

二维码1

领取红包

二维码2

领红包