阿里云个人站点基于nginx代理搭建https协议支持

阿里云个人站点基于nginx代理搭建https协议支持

  • 准备工作
  • 购买免费个人版dv证书
  • 配置nginx
  • 开放防火墙端口
  • 检测是否成功

准备工作

1.个人服务器
2.安装了ssl_moudle的nginx
3.一个静态页面

购买免费个人版dv证书

一、阿里云
官方操作文档
1.兑换免费证书扩容包
之前可以直接在付费页面购买免费的dv证书,但是2021年开始,需要先兑换免费证书扩容包,然后再用扩容包兑换免费dv证书
阿里云个人站点基于nginx代理搭建https协议支持_第1张图片

购买免费证书扩容包

 购买免费证书扩容包直通车
 https://common-buy.aliyun.com/?spm=a2c4g.11186623.2.11.2adc1565Y43ZeV&commodityCode=cas_dv_public_cn)

阿里云个人站点基于nginx代理搭建https协议支持_第2张图片
2.使用免费证书扩容包兑换dv证书
进入ssl管理控制台
阿里云个人站点基于nginx代理搭建https协议支持_第3张图片
兑换单域名证书
阿里云个人站点基于nginx代理搭建https协议支持_第4张图片
3.申请签发证书
阿里云个人站点基于nginx代理搭建https协议支持_第5张图片
阿里云个人站点基于nginx代理搭建https协议支持_第6张图片

下一步以后,如果是阿里云买的域名,会自动添加一条dns解析记录,用于验证信息等,如果是别的地方买的域名,可以手动添加一条,添加好后,点击验证,验证成功后,等待签发,一般1分钟左右就会签发证书
阿里云个人站点基于nginx代理搭建https协议支持_第7张图片
二、腾讯云

#购买直通车
https://buy.cloud.tencent.com/ssl?fromSource=ssl

1.直接访问ssl证书购买页,选中个人免费版,即可
阿里云个人站点基于nginx代理搭建https协议支持_第8张图片
2、签发证书,后续操作与阿里云同理
三、下载nginx的证书文件
阿里云个人站点基于nginx代理搭建https协议支持_第9张图片
阿里云个人站点基于nginx代理搭建https协议支持_第10张图片

配置nginx

前提是nginx安装了ssl_moudle,否则会在启动的时候报错说没有ssl_moudle
1.安装nginx(不多说)
2.配置nginx


user  root;
worker_processes  1;

#error_log  logs/error.log;
#error_log  logs/error.log  notice;
#error_log  logs/error.log  info;

pid        /usr/local/nginx/logs/nginx.pid;


events {
    worker_connections  1024;
}


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

    #log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '
    #                  '$status $body_bytes_sent "$http_referer" '
    #                  '"$http_user_agent" "$http_x_forwarded_for"';

    #access_log  logs/access.log  main;

    sendfile        on;
    #tcp_nopush     on;

    #keepalive_timeout  0;
    keepalive_timeout  65;

    #gzip  on;

    server {
        listen       80;
        server_name  *.xxxx.com;
        #将所有HTTP请求通过rewrite指令重定向到HTTPS。
        rewrite ^(.*)$ https://$host$1; 
        #charset koi8-r;

        #access_log  logs/host.access.log  main;

        location / {
            index  index.html index.htm;
        }

        error_page   500 502 503 504  /50x.html;
        location = /50x.html {
            root   html;
        }
    }

server {
    listen 443 ssl;
    #配置HTTPS的默认访问端口为443。
    #如果未在此处配置HTTPS的默认访问端口,可能会造成Nginx无法启动。
    #如果您使用Nginx 1.15.0及以上版本,请使用listen 443 ssl代替listen 443和ssl on。
    server_name www.xxxx.com; #需要将xxxx.com替换成证书绑定的域名。
    root html;
    index index.html index.htm;
    ssl_certificate cert/xxxxxxxxx.pem;  #需要将cert-file-name.pem替换成已上传的证书文件的名称。
    ssl_certificate_key cert/xxxxxxx.key; #需要将cert-file-name.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; #表示使用的TLS协议的类型。
    ssl_prefer_server_ciphers on;
    location / {
        root   /dir/xxx/xxx/xx;  #站点目录。
        index index.html index.htm;
    }
}

}

需要注意的地方:
1、证书文件的存储位置:

ssl_certificate cert/xxxxxxxxx.pem;  #需要将cert-file-name.pem替换成已上传的证书文件的名称。
ssl_certificate_key cert/xxxxxxx.key;

位置随意,名称随意,但是配置的时候需要填写相对于nginx.conf文件的相对路径
2、如果nginx版本低于1.15,需要将

listen 443 ssl;

更改为

listen 443;
ssl on;

3、证书绑定的域名

server_name www.xxxx.com; #需要将xxxx.com替换成证书绑定的域名。

由于阿里云使用扩容包兑换的证书只能兑换单域名的证书,所以这里需要写成证书绑定的域名,例如:pj.xxxx.com需要使用pj.xxxx.com的证书,stu.xxxx.com需要使用stu.xxxx.com的证书
4、项目的目录
nginx必须要有被代理的目录的访问权限,要么将nginx的用户角色设置高一点,要么将目录的读写权限开放
5、http协议重定向到https协议
这个配置非必须,知识http依然是非安全的,https是安全的,两者分开

开放防火墙端口

本人使用CenterOS7
1.查看已经开放的端口

firewall-cmd --list-ports

2.开放443端口

firewall-cmd --zone=public --add-port=80/tcp --permanent 
    –zone #作用域
    –add-port=80/tcp #添加端口,格式为:端口/通讯协议
    –permanent #永久生效,没有此参数重启后失效

3.阿里云ECS控制台新增安全组放行443以及80端口

检测是否成功

在浏览器使用https访问域名的项目,如果浏览器路径栏带有小锁的标志,则成功

你可能感兴趣的:(https,nginx,java,ssl,linux)