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

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


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

前提

购买一个域名并将其绑定至服务器上(做域名解析),在阿里云管理控制台的域名页面中选择进入域名解析列表,并在解析设置中的新手引导,按照提示输入服务器IP地址即可。
点击新手引导
通过www.域名或域名直接访问服务器页面
虽然图中说“添加成功后可以www.xxx.xx或xxx.xx(设域名为xxx.xx)方式访问网站,但实际上是要先对网站进行备案的,否则就会出现这个页面:
网站未备案时无法直接通过域名访问

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

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

购买证书

进入云盾证书购买页面,在选择品牌处选择Symantec证书类型选择增强型OV SSL后会出现免费型DV SSL(期限一年)
选择Symantec和增强型OV SSL
选择免费证书

申请证书

购买完成,进入证书控制台,点击申请,填写相关信息(注意填写的域名最好与新手引导中的域名相同),点击下一步验证DNS信息后就可提交审核,等待5-10分钟。
申请证书

下载证书

审核通过后,点击下载就可以准备放到服务器上了,接下来主要是针对Nginx的配置过程。
下载证书

将下载的证书上传至服务器的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中的内容
修改监听端口
在这里插入图片描述
4.最后不要忘记测试一下Nginx的配置是否正确,无误后重启即可。

sudo nginx -t
sudo systemctl restart nginx

测试结果

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

  • 0
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值