一、前言
正如我们上篇看到的,当按上述的步骤成功配置好Nginx,访问页面成功后,发现我们的域名使用的是Http协议,并且会显示不安全,如果强行加上Https浏览器就会出现警告,这时我们想更安全的访问我们的网站,并且不出现这些警告,那么我们就需要为自己的项目配置SSL。
Tips:值得注意的是,如果使用阿里云,要记得去阿里云打开443端口,即要配置安全组规则。
二、具体步骤(阿里云)
1. 登录阿里云,去控制台找到SSL证书的入口,然后点击创建免费证书。(这里是阿里云的例子,当然也可以用不同服务商,只需创建完能下载证书即可)
2. 点击证书申请,并配置各项信息,点击下一步,申请即可
3. 当我们申请成功后,列表就会出现我们的免费证书,点击下载,选择Nginx直接下载到本地
4. 下载到本地后,解压文件,也可以改一下.key和.pem文件的名字,我一般是将前面的数字去掉,因为太长啦。然后打开控制台上传本地证书文件到服务器.
scp -r 文件名.key/.pem root@47.95.202.159:/etc/nginx/sites-available/nginx_ssl
Tips:其中文件是我们刚下载好的证书文件,root@47.95.202.159是我们服务器的IP, /etc/nginx/sites-available/nginx_ssl是要上传到服务器的路径,我一般就传到 nginx的配置文件上,这个可以自定义 ;当然能在控制台直接上传文件的前提是你能通过控制台连接服务器,这需要我们在服务器中加一下自己电脑的公钥,关于生成密钥和服务器的配置步骤也已在前文讲到。
5. 在Nginx配置文件上再加一段server配置,按上文举例;当然Linux修改文本命令是vim,这里需要你有一些Linux基础
server {
listen 443; // 监听443端口
server_name www.test.com; // 你的域名
ssl on;
ssl_certificate /etc/nginx/sites-available/online_nginx_ssl/www.test.com.pem; // ssl证书的pem文件路径
ssl_certificate_key /etc/nginx/sites-available/online_nginx_ssl/www.test.com.key; // ssl证书的key文件路径
//以下配置和上文的server配置要一样,直接复制就行
root /home/TestWebsite/dist;
location / {
try_files $uri $uri/ /index.html;
}
location /api/ {
proxy_pass http://127.0.0.1:8000;
}
}
Tips:值得注意的是这个SSL的server配置只是较原来的nginx配置再加上一段,并不是原来的80端口配置不要了。