最详细的Nginx+Tomcat+Https配置教程(阿里云+Symantec证书)

因为之前学校的项目使用的云服务器是微软云的,导致为其配置https时
不太方便,需要自己到处找免费证书,很麻烦,曾写过一篇Ubuntu 16.04——配置Nginx及Https服务,里面用的是certbot的免费证书。


本文使用的则是在阿里云申请的免费证书(Symantec),以下是证书的配置过程。

前提

购买一个域名并将其绑定至服务器上(做域名解析),在阿里云管理控制台的域名页面中选择进入域名解析列表,并在解析设置中的新手引导,按照提示输入服务器IP地址即可。
最详细的Nginx+Tomcat+Https配置教程(阿里云+Symantec证书)_第1张图片
最详细的Nginx+Tomcat+Https配置教程(阿里云+Symantec证书)_第2张图片
虽然图中说“添加成功后可以www.xxx.xx或xxx.xx(设域名为xxx.xx)方式访问网站,但实际上是要先对网站进行备案的,否则就会出现这个页面:
最详细的Nginx+Tomcat+Https配置教程(阿里云+Symantec证书)_第3张图片

当初我可是看了N多教程都没明白究竟怎样才能直接通过域名访问网站,因为各种教程不是缺这就是缺那,走了一些弯路,最后才搞明白实际上流程如下:

Created with Raphaël 2.2.0 申请域名 域名解析(绑定服务器) 直接通过域名访问服务器页面? 域名备案 正常访问服务器页面 域名前加https访问 yes no

购买证书

进入云盾证书购买页面,在选择品牌处选择Symantec证书类型选择增强型OV SSL后会出现免费型DV SSL(期限一年)
最详细的Nginx+Tomcat+Https配置教程(阿里云+Symantec证书)_第4张图片
最详细的Nginx+Tomcat+Https配置教程(阿里云+Symantec证书)_第5张图片

申请证书

购买完成,进入证书控制台,点击申请,填写相关信息(注意填写的域名最好与新手引导中的域名相同),点击下一步验证DNS信息后就可提交审核,等待5-10分钟。
最详细的Nginx+Tomcat+Https配置教程(阿里云+Symantec证书)_第6张图片

下载证书

审核通过后,点击下载就可以准备放到服务器上了,接下来主要是针对Nginx的配置过程。
最详细的Nginx+Tomcat+Https配置教程(阿里云+Symantec证书)_第7张图片

将下载的证书上传至服务器的nginx目录中(可新建一个/etc/nginx/cert目录以存放证书)

在Nginx上配置证书

最初参考的是阿里云官网上的Nginx/Tengine服务器安装SSL证书,但其中内容和实际情况有些出入,故补上详细内容。
很多教程里说在nginx/nginx.conf中找到被注释的关于ssl的内容并稍加修改即可成功,然鹅事实并非如此enter description here
实际上应该在/etc/nginx/sites-available/default中配置。
1.若只配置https,在default文件中找到或加上如下内容即可:

        server_name 自己的域名 www.自己的域名;
        listen [::]:443 ssl ipv6only=on;
        listen 443 ssl;
        ssl on;
        #root html;目前使用中看来这句没啥用
        #index index.html index.htm;同上
        ssl_certificate   cert/自己的证书.pem;
        ssl_certificate_key  cert/自己的证书.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;
        ssl_prefer_server_ciphers on;

2.如果还要通过Nginx代理Tomcat,则加入以下内容即可:

        listen 80 default_server;
        listen [::]:80 default_server;

        location / {
        proxy_pass http://localhost:8080;
        proxy_redirect off;
        proxy_set_header Host $host;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Real-IP $remote_addr;
        }

        #针对图片访问的据说不加会受影响(首先路径得对),虽然我还没遇到过
        location /images/{
                root /var/www/;
                autoindex off;
        }

        location ~ .*.[jsp|do|action]$ { #所有jsp页面以及do/action请求均交由tomcat处理
            index index.jsp;
            proxy_pass http://localhost:8080; #转向tomcat处理
        }
        location ~ .*\.(gif|jpg|jpeg|png|bmp|swf)$ { #设定访问静态文件直接读取不经过tomcat
            expires      30d;
            proxy_pass http://localhost:8080; #转向tomcat处理
        }
        location ~ .*\.(js|css)?$ {
            expires      1h;
        }

3.Tomcat中需要修改一下/tomcat/conf/server.xml中的内容
修改监听端口
最详细的Nginx+Tomcat+Https配置教程(阿里云+Symantec证书)_第8张图片
4.最后不要忘记测试一下Nginx的配置是否正确,无误后重启即可。

sudo nginx -t
sudo systemctl restart nginx

测试结果



经过反复尝试,最后得出这种办法,希望内容足够详细并能帮助到一些迷路儿童!!!

你可能感兴趣的:(服务器)