这个部分网上都有很多例子,因为都是对着网站的按钮点点点,无脑操作,没啥好讲的!直接链接+贴图吧。
1、链接: 阿里云SSL证书页面
2、然后 登录到 阿里云SSL证书管理控制台
点3那个证书申请,我申请过了,所以现在是已签发
下面的就这样填
然后点一下上面的这个鼠标向下滑一下,手动就会变成自动
3、域名DNS验证
如果当前申请SSL证书和域名在同一阿里云账号下,选择自动DNS验证,系统会自动帮你添加DNS验证。
就是直接点验证确认。
但是,如果域名不在当前阿里云账号下,就需要选择手工DNS验证,手动的如下图:
登录到 阿里云域名DNS解析控制台
将上面这玩意的对应填到你下面这对应的这几个里面,确认保存!
回到你数字证书管理服务控制台,点击下载,下nginx的。
到这申请就搞定了!
将刚刚上面下载的那个压缩包打开。
里面有俩文件,一个key,一个pem。你自己上自己的服务器找个地方把他们摆上去。
yum -y install gcc zlib zlib-devel pcre-devel openssl openssl-devel
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模块的,否则默认配置编译后,是不能识别的。
/usr/local/nginx/sbin/nginx -V
把你原先的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 #永久生效,没有此参数重启后失效