ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

网站部署杂谈

2022-08-08 14:34:12  阅读:594  来源: 互联网

标签:https ssl 证书 部署 杂谈 server 网站 nginx --


SSL证书配置

前端

环境:CentOS 8.0 64bit

nginx:1.18.0

ssl证书我是用的是腾讯云申请的免费的亚洲诚信

假设已经有主域名abcd.com

step1:申请证书

step2.按照步骤一步一步走下去,在域名供应商那里修改对应DNS记录

step3.下载证书

下载用于nginx的ssl证书:

nginx安装完毕之后,到/usr/local/nginx/conf中编辑nginx.conf文件,编辑内容如下:

worker_processes  1;

events {
    worker_connections  1024;
}


http {
    include       mime.types;
    default_type  application/octet-stream;


    #access_log  logs/access.log  main;

    sendfile        on;
    #tcp_nopush     on;

    #keepalive_timeout  0;
    keepalive_timeout  65;


    server {#这一步是将http请求跳转到https中
        listen       80;
        server_name  填写你的域名;
        return 301 https://$host$request_uri;
    }

    server {
            #SSL 默认访问端口号为 443
            listen 443 ssl;
            #请填写绑定证书的域名
            server_name 填写你的域名;
            #请填写证书文件的相对路径或绝对路径
            ssl_certificate 填写你的域名.crt;
            #请填写私钥文件的相对路径或绝对路径
            ssl_certificate_key 填写你的域名.key;
            ssl_session_timeout 5m;
            #请按照以下协议配置
            ssl_protocols TLSv1.2 TLSv1.3;
            #请按照以下套件配置,配置加密套件,写法遵循 openssl 标准。
            ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:HIGH:!aNULL:!MD5:!RC4:!DHE;
            ssl_prefer_server_ciphers on;
            location / {
                #网站主页路径。此路径仅供参考,具体请您按照实际目录操作。
                #例如,您的网站主页在 Nginx 服务器的 /etc/www 目录下,则请修改 root 后面的 html 为 /etc/www。
                root /etc/www;#这里的www就是build之后文件夹,
                index  index.html index.htm;
                try_files $uri /index.html;
            }
        }

}

这一步可以参考腾讯云的教程:SSL 证书 Nginx 服务器 SSL 证书安装部署-证书安装-文档中心-腾讯云 (tencent.com)

step4.要检查防火墙是否打开了443 80等端口,我一开始是在腾讯云的面板里看见是打开的,但是始终无法访问https的页面,最后在服务器装了yum install firewalld 这个服务,具体可以查看(106条消息) linux中防火墙操作命令_喜羊羊love红太狼的博客-CSDN博客_bash firewall未找到命令

使用命令打开443 80 3306(mysql的端口)等等

firewall-cmd --zone=public --permanent --add-port=80/tcp还有firewall-cmd --zone=public --permanent --add-port=443/tcp以及firewall-cmd --zone=public --permanent --add-port=3306/tcp。设置之后刷新防火墙:firewall-cmd --reload

可以通过命令查看防火墙放行了哪些端口:firewall-cmd --list-all

最后直接访问https://www.abcd.com即可

后端

参考Springboot后端开启https 腾讯云申请SSL证书 http自动重定向 手把手配置教学 Java网络基础_哔哩哔哩_bilibili,感谢up主!

​ 若前端使用了https,这个时候如果内部有请求的地址是http的,浏览器就会报错,若请求的都是一些css、js的静态资源,可以尝试在index.html页面头上加上一句代码,这里暂不演示。我这里主要是如何给后端的请求加上https,因为我要使用微信小程序,而微信小程序访问的请求链接必须是域名且是具备https的。

​ 我写的是springboot项目,打包成jar(要配置好数据库的链接等等)之后直接甩到服务器上就行,比如springboot运行的端口是7899,那么服务器运行起来之后你通过http://服务器的ip地址:7899/api...就可以访问了,但是如果想变成https://域名:7899/api...就得进行一些设置和操作。

​ 假如要把springboot的后端项目部署到https://api.abcd.com,那么

step1.去腾讯云申请ssl证书,虽然可以自己在本地用java工具生成证书,但是在实际项目中,是由浏览器发起访问,那么浏览器不认这个证书就会报错,所以我们要去申请CA批发的证书。申请ssl证书的时候域名填api.abcd.com,配置DNS前缀只写api即可。

step2.下载证书的tomcat版本(JKS),压缩包里有一个jks文件和一个txt文件,txt文件里写的就是密码

step3.将jks文件拷贝到springboot的resources文件夹下:

step4.随后配置springboot设置,到application.properties中,新增如下配置:

server.ssl.key-store=classpath:域名.jks
server.ssl.key-store-password=txt中的密码
server.ssl.key-store-type=JKS

step5.重新打包之后放到服务器上部署即可

项目部署

参考codesheep项目下载、运行、配置、构建、打包、部署:全步骤实战演示。前后端分离式项目实战部署(含nginx、tomcat部署配置)视频教程_哔哩哔哩_bilibili

这里部署的是前后端分离的系统,前端是react,后端是springboot。前端服务器是nginx,后端服务器是内置的tomcat

前端

​ 直接在IDE的终端中打上npm run build之后可以得到一个build文件夹。

​ 建议打包成zip文件,上传到服务器,解压到一个地方,这里我解压到/workspace/react-ui/build。随后在nginx的conf配置文件(如果是默认安装的话,就位于/usr/local/nginx/conf/nginx.conf)中写下这样,将这里配置成:

    server {
        listen       80;
        server_name  localhost;

        #charset koi8-r;

        #access_log  logs/host.access.log  main;

        location / {
            root   /workspace/react-ui/build;#就是刚刚解压的位置
            index  index.html index.htm;
            try_files $uri /index.html;#因为我们是前端分离的项目,只有一个html,所以不设置这一行的话,在浏览器键入地址而不是由js跳转的话会报404错误,这个配置是必须的
        }

​ 随后重启即可,/usr/local/nginx/sbin/nginx -s reload

若要配置https,看上面一part即可

后端

​ 这个更简单了,在ide中直接通过maven打包,得到jar包(假设jar包名为A.jar)

​ 随后到拷贝到工作目录(其实都可以,这里把前后端项目归总到一起,方便找位置),到目录下使用命令nohup java -jar A.jar & 这样就可以了。

nohup的意思是后台挂着运行,最后加的&是代表着本次ssh连接关闭之后也继续运行。

标签:https,ssl,证书,部署,杂谈,server,网站,nginx,--
来源: https://www.cnblogs.com/csq-66/p/16561701.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有