阿里云备案+ssl申请+Nginx配置https

本人亲测,有效!!!

  • 阿里云备案和ssl申请
  • 下载openssl
  • 配置nginx配置文件
  • 小知识点

阿里云备案和ssl申请

这个部分网上都有很多例子,因为都是对着网站的按钮点点点,无脑操作,没啥好讲的!直接链接+贴图吧。
1、链接: 阿里云SSL证书页面
阿里云备案+ssl申请+Nginx配置https_第1张图片
阿里云备案+ssl申请+Nginx配置https_第2张图片
2、然后 登录到 阿里云SSL证书管理控制台

点3那个证书申请,我申请过了,所以现在是已签发

阿里云备案+ssl申请+Nginx配置https_第3张图片
然后就是填写资料咯.

下面的就这样填

阿里云备案+ssl申请+Nginx配置https_第4张图片

然后点一下上面的这个鼠标向下滑一下,手动就会变成自动

在这里插入图片描述

3、域名DNS验证
如果当前申请SSL证书和域名在同一阿里云账号下,选择自动DNS验证,系统会自动帮你添加DNS验证。
就是直接点验证确认。
但是,如果域名不在当前阿里云账号下,就需要选择手工DNS验证,手动的如下图:
登录到 阿里云域名DNS解析控制台
阿里云备案+ssl申请+Nginx配置https_第5张图片

将上面这玩意的对应填到你下面这对应的这几个里面,确认保存!

阿里云备案+ssl申请+Nginx配置https_第6张图片
回去点击验证,提交审核,等个几分钟就了!

回到你数字证书管理服务控制台,点击下载,下nginx的。
阿里云备案+ssl申请+Nginx配置https_第7张图片
到这申请就搞定了!

下载openssl

将刚刚上面下载的那个压缩包打开。
里面有俩文件,一个key,一个pem。你自己上自己的服务器找个地方把他们摆上去。

阿里云备案+ssl申请+Nginx配置https_第8张图片

yum -y install gcc zlib zlib-devel pcre-devel openssl openssl-devel

阿里云备案+ssl申请+Nginx配置https_第9张图片

cd /usr/local/nginx-1.18.0
./configure --prefix=/usr/local/nginx --with-http_ssl_module
make && make install
参数:--with-http_ssl_module

这个就是开启nginx的SSL模块的,否则默认配置编译后,是不能识别的。
阿里云备案+ssl申请+Nginx配置https_第10张图片

/usr/local/nginx/sbin/nginx -V

配置nginx配置文件

把你原先的80的给干掉,换成下面的,直接整个copy过去也行,但记得下面的key和pem和server name的域名和跳转那个你要改,跳转那个你要不跳就删了他就可以了!


#user  nobody;
worker_processes  1;

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

#pid        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;

 
    # HTTPS server
    #
    server {
       listen       443 ssl;
        #  配置HTTPS的默认访问端口为443。
        #  如果未在此处配置HTTPS的默认访问端口,可能会造成Nginx无法启动。
        #  如果您使用Nginx 1.15.0及以上版本,请使用listen 443 ssl代替listen 443和ssl on。

       server_name  你的域名;

       index index.html index.htm;
       
       #这个是我存放的地址,你自己看看你的pem和key放在哪了,你自己覆盖一下
       ssl_certificate /home/yanzhen/7981410_linstudy.top.pem; 
       ssl_certificate_key /home/yanzhen/7981410_linstudy.top.key;
  
       ssl_session_cache    shared:SSL:1m;
       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;
        #  ↓开启GZIP ,可以不开启。
       gzip on;
       gzip_buffers 32 4K;
       gzip_comp_level 6;
       gzip_min_length 100;
       gzip_types application/javascript text/css text/xml;
       gzip_disable "MSIE [1-6]\.";
       gzip_vary on;

    location / { 
        root html;
        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_pass ip+端口;
        index  index.html index.htm;
        }
    }

    server {
    listen 80;
    server_name linstudy.top;
    #将请求转成https
    rewrite ^(.*)$ https://$host$1 permanent;
}

}

小知识点

1、有时候我们开启或重启Nginx时会报如下错误:

**Nginx [emerg]: bind() to 0.0.0.0:80 failed (98: Address already in use)**

原因是端口号80被其它程序或文件占用了,那么就干掉这个程序吧

sudo fuser -k 80/tcp
fuser -k 80/tcp

# ubuntu这个也可以查端口
sudo lsof -i:5000
kill -9 PID # -9是强制停止,一般是-2,表示任务按正常流程结束,但有时候-2没用,那就只能-9了。

2、再附带个防火墙的吧

# 查看firewall服务状态
systemctl status firewalld

# 开启、重启、关闭、firewalld.service服务
# 开启
service firewalld start
# 重启
service firewalld restart
# 关闭
service firewalld stop

# 查看防火墙规则
firewall-cmd --list-all    # 查看全部信息
firewall-cmd --list-ports  # 只看端口信息

# 开启端口
开端口命令:firewall-cmd --zone=public --add-port=80/tcp --permanent
重载入添加的端口:firewall-cmd --reload
重启防火墙:systemctl restart firewalld.service

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

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