ssl证书获取及nginx配置https访问

http&https

HTTP(HyperText Transfer Protocol:超文本传输协议)是一种用于分布式、协作式和超媒体信息系统的应用层协议。 简单来说就是一种发布和接收 HTML 页面的方法,被用于在 Web 浏览器和网站服务器之间传递信息。

HTTPS(Hypertext Transfer Protocol Secure:超文本传输安全协议)是一种透过计算机网络进行安全通信的传输协议。HTTPS 经由 HTTP 进行通信,但利用 SSL/TLS 来加密数据包。HTTPS 开发的主要目的,是提供对网站服务器的身份认证,保护交换数据的隐私与完整性。

HTTP 协议以明文方式发送内容,不提供任何方式的数据加密,如果攻击者截取了Web浏览器和网站服务器之间的传输报文,就可以直接读懂其中的信息,因此,HTTP协议不适合传输一些敏感信息,比如:信用卡号、密码等支付信息。

https使用场景

  1. 网站数据传递的安全性

  2. 基于前后端分离开发方式,比如微信小程序,等这些移动端应用开发,比如:你的服务器接口必须是:https,微信小程序在真实的项目发布的,如果不是https的接口你也是通不过。

  3. https配置前提

    • 必须拥有一个已经备案的域名
    • 拥有一台服务器(含公网IP)
    • 服务器与域名进行解析
    • 领取ssl安全证书
    • 证书授权与安装至nginx中
  4. 域名解析
    在这步之前,你需要在工信部成功备案信息,注意:备案地址取决你的服务器厂商,服务器在哪个公司购买的就去哪个公司去备案,备案详情请咨询客服,客服会把你讲的明明白白。

  1. 申请ssl证书

    • 搜索栏搜索SSL
    • 申请免费证书,输入域名
    • 创建证书
    • 下载证书
    • 解压证书
  2. 安装nginx

  3. 上传ssl证书

    • 在nginx的conf目录下新建一个cert目录,并将这两个文件上传到cert目录下
  4. 配置ssl

# 开启gzip压缩
gzip on;
gzip_min_length 10k;
gzip_buffers 4 16k;
#gzip_http_version 1.0;
gzip_comp_level 2;
gzip_types text/plain application/x-javascript text/css application/xml text/javascript image/jpeg image/gif image/png image/jpg;
gzip_vary off;
gzip_disable "MSIE [1-6]\.";

# tomcat服务
upstream tomcatservers {
   server 127.0.0.1:8080;
   server 127.0.0.1:8081;
}

server {
    listen 80;
    server_name www.qdwork.top; #需要将yourdomain.com替换成证书绑定的域名。
    rewrite ^(.*)$ https://$host$1; #将所有HTTP请求通过rewrite指令重定向到HTTPS。
    location / {
        proxy_pass http://tomcatservers;
    }
}


#以下属性中,以ssl开头的属性表示与证书配置有关。
server {
    listen 443 ssl;
    #配置HTTPS的默认访问端口为443。
    #如果未在此处配置HTTPS的默认访问端口,可能会造成Nginx无法启动。
    #如果您使用Nginx 1.15.0及以上版本,请使用listen 443 ssl代替listen 443和ssl on。
    server_name www.qdwork.top; #需要将yourdomain.com替换成证书绑定的域名。
    root html;
    index index.html index.htm;
    ssl_certificate cert/6179501_www.qdwork.top.pem;  #需要将cert-file-name.pem替换成已上传的证书文件的名称。
    ssl_certificate_key cert/6179501_www.qdwork.top.key; #需要将cert-file-name.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; #表示使用的TLS协议的类型。
    ssl_prefer_server_ciphers on;
    location / {
        proxy_pass http://tomcatservers;
    }
}
  1. 重启nginx服务

    • 注意:如果是宝塔安装的nginx,还需在宝塔面板放行443端口,当网站配置https后,就无法通过js加载http服务的资源了。

   转载规则


《ssl证书获取及nginx配置https访问》 SunnyZhifei 采用 知识共享署名 4.0 国际许可协议 进行许可。
 本篇
ssl证书获取及nginx配置https访问 ssl证书获取及nginx配置https访问
http&httpsHTTP(HyperText Transfer Protocol:超文本传输协议)是一种用于分布式、协作式和超媒体信息系统的应用层协议。 简单来说就是一种发布和接收 HTML 页面的方法,被用于在 Web 浏览器
2023-03-27
下一篇 
常见问题汇总 常见问题汇总
对遇到的问题进行记录,包括git、windows、linux、软件等
2022-08-12
  目录