醉说周易 發表於 2020-5-16 17:43:00

配置域名与Https

<h2 id="前言">前言</h2>
<p>在之前的内容里,我们已经实现了部署SpringBoot项目到云服务器,但是当时用的是直接通过ip+端口的方式访问的,在之后如果是想对接上自己开发的小程序的话,必须要https的地址才行,因此今天我们来试试怎么为我们的后台配置域名与SSL证书</p>
<h2 id="部署前的准备">部署前的准备</h2>
<ol>
<li>云服务器</li>
<li>已经在云服务器上跑通的SptringBoot项目</li>
</ol>
<h2 id="最终效果">最终效果</h2>
<p><img src="https://images.cnblogs.com/cnblogs_com/KyrieWang/1603528/o_200516092319%E6%9C%80%E7%BB%88%E6%95%88%E6%9E%9C.png" alt="效果图" loading="lazy"></p>
<h2 id="步骤">步骤</h2>
<h3 id="配置域名">配置域名</h3>
<h4 id="购买域名">购买域名</h4>
<p>我们直接在腾讯云的官网上购买域名即可,如果没有什么特别的要求,大概也就20/年的价格,还是很便宜的<br>
<img src="https://images.cnblogs.com/cnblogs_com/KyrieWang/1603528/o_200516092323%E8%BF%9B%E5%85%A5%E5%9F%9F%E5%90%8D%E7%AE%A1%E7%90%86.png" alt="购买域名入口" loading="lazy"><br>
购买流程就不多啰嗦了,和普通购物一样</p>
<h4 id="域名绑定">域名绑定</h4>
<p>购买成功之后,我们就需要把域名与我们的云服务器绑定了,如下图所示点击域名的解析按钮进入绑定页面<br>
<img src="https://images.cnblogs.com/cnblogs_com/KyrieWang/1603528/o_2005160923563%E8%BF%9B%E5%85%A5%E5%9F%9F%E5%90%8D%E8%A7%A3%E6%9E%90.png" alt="进入绑定页面" loading="lazy"><br>
在绑定页面点击添加记录后,需要关注的就只有主机记录和记录类型了,一般分别填写@和自己的云服务器ip即可<br>
<img src="https://images.cnblogs.com/cnblogs_com/KyrieWang/1603528/o_2005160923534%E5%9F%9F%E5%90%8D%E8%A7%A3%E6%9E%90%E4%B8%BB%E6%9C%BA%E8%AE%B0%E5%BD%95.png" alt="绑定页面1" loading="lazy"><br>
<img src="https://images.cnblogs.com/cnblogs_com/KyrieWang/1603528/o_2005160923495%E5%9F%9F%E5%90%8D%E8%A7%A3%E6%9E%90%E8%AE%B0%E5%BD%95%E5%80%BC.png" alt="绑定页面2" loading="lazy"><br>
输入完上面的内容后,点击保存即可,至此域名就算配置结束了</p>
<h4 id="域名备案">域名备案</h4>
<p>所有域名都是需要备案的,不过短时间内不备案大概也不会有影响。备案的话大概就是提交一些身份证之类的信息给相应部门进行审核,在腾讯云里搜索网站备案就可以找到入口了,目前我也是刚刚申请备案,暂时还在审核中,所以就不在此赘述了。</p>
<h3 id="配置https">配置https</h3>
<h4 id="申请ssl证书">申请SSL证书</h4>
<p>https按我的理解就是http+SSL验证,所以我们第一步就是申请一个SSL证书,入口和上面申请域名类似,在腾讯云首页搜索SSL证书就可以找到了,这里我们个人使用就申请一个免费证书就可以了,叫做免费版DVSSL证书<br>
<img src="https://images.cnblogs.com/cnblogs_com/KyrieWang/1603528/o_2005160923456%E7%94%B3%E8%AF%B7SSL%E8%AF%81%E4%B9%A6.png" alt="申请SSL证书" loading="lazy"></p>
<p><img src="https://images.cnblogs.com/cnblogs_com/KyrieWang/1603528/o_2005160923427%E7%94%B3%E8%AF%B7SSL%E8%AF%81%E4%B9%A6%E8%AF%A6%E6%83%85.png" alt="申请SSL证书详情" loading="lazy"></p>
<p><img src="https://images.cnblogs.com/cnblogs_com/KyrieWang/1603528/o_2005160923378%E5%9F%9F%E5%90%8D%E8%BA%AB%E4%BB%BD%E9%AA%8C%E8%AF%81.png" alt="域名身份验证" loading="lazy"></p>
<h4 id="下载ssl证书">下载SSL证书</h4>
<p>申请好后,在证书管理界面把证书下载下来解压,之后通过Nginx配置时需要Nginx文件夹里的文件<br>
<img src="https://images.cnblogs.com/cnblogs_com/KyrieWang/1603528/o_2005160923349%E4%B8%8B%E8%BD%BD%E5%A5%BD%E7%9A%84%E8%AF%81%E4%B9%A6.png" alt="SSL证书文件" loading="lazy"></p>
<h4 id="配置nginx">配置Nginx</h4>
<h5 id="nginx理解">Nginx理解</h5>
<p>Nginx按照百度百科的说法,是一个高性能的HTTP和反向代理web服务器。按我的菜鸟级理解,就是我们通过域名访问到云服务器之后分发请求的东西。由于https只支持443端口的访问,当我们用户通过https请求时,就会访问到Nginx上,Nginx再帮我们把请求分发到不同项目上</p>
<h5 id="云端安装nginx">云端安装Nginx</h5>
<p>安装比较简单,直接执行如下指令即可</p>
<pre><code>yum install openssl-devel nginx
</code></pre>
<h5 id="配置nginx-1">配置Nginx</h5>
<ol>
<li>进入Nginx文件夹内,创建ssl文件夹</li>
</ol>
<pre><code>cd /etc/nginx/
mkdir ssl
</code></pre>
<ol start="2">
<li>通过xftp导入ssl证书文件到该ssl文件夹内<br>
<img src="https://images.cnblogs.com/cnblogs_com/KyrieWang/1603528/o_20051609233110ftp%E5%AF%BC%E5%85%A5ssl%E6%96%87%E4%BB%B6.png" alt="导入ssl文件" loading="lazy"></li>
<li>在本地按照如下内容创建一个类似wangxxx.conf的配置文件,通过xftp导入到/etc/nginx/conf.d/文件夹下,注意域名和证书公钥、私钥记得改成自己的</li>
</ol>
<pre><code>server{
    listen 80;    #表示监听80端口
    server_name wangxxx.cn www.wangxxx.cn;
location / {    #将80端口强制转为https
      rewrite (.*) https://www.wangxxx.cn$1 permanent;
    }
}
server
{
    listen 443 ssl;    #表示监听443端口即https
    server_name wangxxx.cn www.wangxxx.cn;
    ssl_certificate /etc/nginx/ssl/1_wangxxx.cn_bundle.crt;   #证书公钥文件路径
    ssl_certificate_key /etc/nginx/ssl/2_wangxxx.cn.key;      #证书私钥文件路径
    ssl_session_timeout 5m;                                       #5分钟session会话保持
    ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
    ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:HIGH:!aNULL:!MD5:!RC4:!DHE;
    ssl_prefer_server_ciphers on;
    location / {    #跳转到实际应用
      proxy_pass http://127.0.0.1:8080;
      proxy_redirect   off;
      proxy_set_header Host $host;
      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;
    }
}

</code></pre>
<p><img src="https://images.cnblogs.com/cnblogs_com/KyrieWang/1603528/o_20051609232711ftp%E5%AF%BC%E5%85%A5conf%E6%96%87%E4%BB%B6.png" alt="导入conf文件" loading="lazy"><br>
4. 启动Nginx</p>
<pre><code>service nginx restart
</code></pre>
<p>至此就算整个https配置完毕了</p>
<ol start="5">
<li>最后再试一下效果</li>
</ol>
<p><img src="https://images.cnblogs.com/cnblogs_com/KyrieWang/1603528/o_200516092319%E6%9C%80%E7%BB%88%E6%95%88%E6%9E%9C.png" alt="效果图" loading="lazy"></p>
<h1 id="引用">引用</h1>
<p>感谢以下大神的相关博文</p>
<ol>
<li>腾讯云服务器配置https访问证书-nginx(极简)</li>
<li>Centos7.3防火墙配置</li>
<li>服务器绑定自己的域名-腾讯云</li>
<li>nginx启动成功进程正常,浏览器访问不了,欢迎页面不出现</li>
</ol>
<h1 id="后记">后记</h1>
<p>接下来会试着在服务器端配置好自己的数据库,实现通过接口访问云服务器端的数据库</p><br><br>
来源:https://www.cnblogs.com/KyrieWang/p/12901429.html
頁: [1]
查看完整版本: 配置域名与Https