01.前期准备
- 已经有一个域名,并将域名解析了对应的ip地址上
- 国内服务器域名解析需要申请备案,确认域名已经备案成功(周期7-15天左右)
- 有一个服务器
- 已经购买了ssl证书,并且主域名上已经配置了https。
没有配置https的可以浏览笔者本专栏的上一篇文章,如果对https无需求可无视第4条
02.申请子域名证书
-
这里笔者还是以阿里云为例。进入阿里云控制台,选择
云解析DNS业务模块 -
添加子域名
第一步第二步
第三步
03.申请并下载子域名ssl证书(没有https需求的话,可直接看第四步)
-
关于申请证书的填写
证书绑定的域名:输入刚才确认的子域名
其他选项: 系统默认即可。
到了第下一步。通常情况下,阿里云已经帮你把第一步第二步做好了,你只需要点击以下第三步的
验证按钮,确认下是否正常即可。没有问题的话点击提交审核。 -
下载ssl证书 等待审核通过后。因为我们部署用的是nginx,所以选择 nginx 的证书进行下载。
-
得到两个文件,一会需要上传到服务器上。
04.配置nginx
-
在/usr/local/nginx/conf/ssl/ 目录下上传我们刚才下载的证书
-
进入在 /usr/local/nginx/conf/ 目录
cd /usr/local/nginx/conf/
-
新建 w3.conf 空白文件
touch w3.conf
-
进入 w3.conf 的文件操作模式
vim /usr/local/nginx/conf/w3.conf -
按
i键开始编辑
注释的地方需要手动修改
# w3.conf模板
server {
listen 443 ssl;
# 这里换成自己的子域名
server_name w3.chimeng.xyz;
# 展示给用户的网页路径
root /home/project/bdmoa/web/dist;
# 路径换成刚才上传的SSL证书路径
ssl_certificate ssl/8718758_w3.chimeng.xyz.pem;
ssl_certificate_key ssl/8718758_w3.chimeng.xyz.key;
ssl_session_cache shared:SSL:10m;
ssl_session_timeout 5m;
ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4;
ssl_protocols TLSv1.1 TLSv1.2 TLSv1.3;
ssl_prefer_server_ciphers on;
location / {
# 展示给用户的网页路径
root /home/project/bdmoa/web/dist;
}
location /api{
# 当请求以api开头时,换成对应服务端的地址,端口号记得在安全组开放
proxy_pass http://127.0.0.1:3000;
add_header Content-Type "text/plain;charset=utf-8";
add_header 'Access-Control-Allow-Origin' '*';
add_header 'Access-Control-Allow-Credentials' 'true';
add_header 'Access-Control-Allow-Methods' 'GET, POST';
}
}
-
按
esc键退出编辑模式 -
退出并回到终端
:wq保存并退出
:q不保存退出
:q!不保存退出(强制) -
进入 nginx.conf 主配置文件的操作模式
vim /usr/local/nginx/conf/nginx.conf -
按
i键进入文件编辑模式
注释部分为新增代码
worker_processes 1;
# 加入本段代码
include /usr/share/nginx/modules/*.conf;
events {
worker_connections 1024;
}
http {
include mime.types;
# 导入刚才我们新建的配置文件,这里填的是路径,而我们新建的w3.conf与nginx.conf正好在同一目录下
include w3.conf;
default_type application/octet-stream;
sendfile on;
keepalive_timeout 65;
server {
listen 443 ssl;
server_name www.chimeng.xyz;
root /home/project/myweb;
ssl_certificate ssl/8713426_www.chimeng.xyz.pem;
ssl_certificate_key ssl/8713426_www.chimeng.xyz.key;
ssl_session_timeout 5m;
ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4;
ssl_protocols TLSv1.1 TLSv1.2 TLSv1.3;
ssl_prefer_server_ciphers on;
location / {
root /home/project/myweb;
}
}
server {
listen 80;
server_name www.chimeng.xyz;
rewrite ^(.*)$ https://$host$1;
location / {
root /home/project/myweb;
}
}
}
-
按
esc键退出编辑模式 -
退出并回到终端
:wq保存并退出
:q不保存退出
:q!不保存退出(强制) -
关闭并重启nginx服务,无报错即为启动成功
现在,我们就可以去通过子域名去访问我们的网站了