Nginx如何配置SSL证书实现Https访问

本篇内容主要讲解“Nginx如何配置ssl证书实现Https访问”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Nginx如何配置SSL证书实现Https访问”吧!

专注于为中小企业提供成都做网站、网站设计、外贸营销网站建设服务,电脑端+手机端+微信端的三站合一,更高效的管理,为中小企业固安免费做网站提供优质的服务。我们立足成都,凝聚了一批互联网行业人才,有力地推动了成百上千家企业的稳健成长,帮助中小企业通过网站建设实现规模扩充和转变。

背景

由于项目需求,安全起见,需要将之前的http接口访问变成https访问,所以需要配置ssl证书。项目的架构是这样的:

Nginx如何配置SSL证书实现Https访问

基本架构是硬负载(readwhere)+ 软负载(nginx)+ tomcat集群,现在的问题是ssl证书要配置在哪里,直接配置在硬负载上?还是分别配置在nginx和tomcat上?还是其他的配置方法呢?

首先在硬负载上配置放弃了,然后通过在网上查找资料,发现可以只在nginx上配置证书,就是说nginx接入使用https,而nginx与tomcat之间使用http进行衔接,这样就游了一个整体思路。

关于ssl证书

关于ssl证书这里简单进行介绍,也是因为项目需要,进行了简单的了解。

ssl证书分为大致分为三种,域名级(dv)、企业级(ov)、增强级(ev),安全性以及价格依次增加。根据自己的需求进行选择,个人使用可以使用dv,便宜;企业用的话一般使用ov,特殊情况下使用ev。

ssl证书配置

由于nginx对于ssl证书配置的支持才使得这种实现方式成为了可能,不得不感叹nginx的强大。

证书准备

nginx配置需要.pem/.crt证书 + .key秘钥,如果您现在拥有的是其他形式的证书,请按照相关说明转化成要求的证书类型,否则是不能完成证书的配置的。一般购买商家都会有相应的转换工具。

准备好了之后,将证书和秘钥放到nginx的conf目录下(也就是跟配置文件nginx.conf在同一个目录),这里特别需要注意:

  1. 如果是在linux系统下配置,这就算准备好了;

  2. 如果是在windows系统下,需要将.key秘钥文件中的密码去除,否则就会导致配置之后nginx启动不起来,这里是一个坑,本人就卡在了这里,具体处理方法也很简单,在网上下载openssl的windows版本,然后将cmd切换到bin目录下,执行openssl rsa -in server.key -out server2.key,生成的server2.key就是配置需要的秘钥文件,但是需要将文件名改成server.key。

修改nginx配置文件

以下是我nginx.conf配置文件的局部,端口着迷没有使用默认的443,而是改成了8185,根据您的需要进行修改即可,其他配置基本上按照下面就没问题。

server {
    listen    8185;
    server_name localhost; 
    ssl         on; 
    ssl_certificate   server.pem; 
    ssl_certificate_key server.key; 
    ssl_session_timeout 5m;
    ssl_protocols tlsv1 tlsv1.1 tlsv1.2;
    ssl_ciphers high:!rc4:!md5:!anull:!enull:!null:!dh:!edh:!exp:+medium; 
    ssl_prefer_server_ciphers  on;

    location / {
      proxy_set_header host $host:$server_port; 
      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_connect_timeout  5;
      proxy_send_timeout   5;
      proxy_read_timeout   5; 
      proxy_pass http://qlddm_server;
    }

修改tomcat配置文件

虽然不需要在tomcat配置证书,但是仍然需要修改一下tomcat的配置server.xml配置文件,具体包含两个地方:

<connector 
    executor="tomcatthreadpool"
    port="7083" 
    protocol="org.apache.coyote.http11.http11nio2protocol" 
    connectiontimeout="20000" 
    maxconnections="8000" 
    redirectport="8185" 
    proxyport="8185"
    enablelookups="false" 
    acceptcount="100" 
    maxpostsize="10485760" 
    compression="on" 
    disableuploadtimeout="true" 
    compressionminsize="2048" 
    acceptorthreadcount="2" 
    compressablemimetype="text/html,text/xml,text/plain,text/css,text/javascript,application/javascript" 
    uriencoding="utf-8"
  />

需要将redirectport和proxyport都修改为您的nginx监听端口号。

<valve classname="org.apache.catalina.valves.remoteipvalve"
       remoteipheader="x-forwarded-for"
       protocolheader="x-forwarded-proto"
       protocolheaderhttpsvalue="https" httpsserverport="8185"/>

需要增加以上的value标签,注意httpsserverport也需要修改为nginx监听端口号。

到此,相信大家对“Nginx如何配置SSL证书实现Https访问”有了更深的了解,不妨来实际操作一番吧!这里是创新互联网站,更多相关内容可以进入相关频道进行查询,关注我们,继续学习!

本文名称:Nginx如何配置SSL证书实现Https访问
网页路径:https://www.cdcxhl.com/article46/iipeeg.html

成都网站建设公司_创新互联,为您提供搜索引擎优化微信公众号移动网站建设网站排名虚拟主机用户体验

广告

声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 创新互联

成都做网站