Nginx配置SSL证书实现Https安全访问

1.简介

什么是Https?简单地说就是http的一个安全版本。HTTPS的安全基础是SSL,因此加密的详细内容就需要SSL。

2.证书申请

可以在阿里云或腾讯云上申请一个SSl证书(如果是个人用户-都有个人单域名免费版),
如果企业还是在权威机构,一般需要购买证书。一般申请了证书需要审核完毕后就可以下载证书文件了。
以阿里云为例
Nginx配置SSL证书实现Https安全访问_第1张图片

3.安装SSL模块

使用Nginx配置SSL证书需要模板支持。若未安装请参考:传送门

4.配置Nginx

接下来我们配置Nginx.conf,将下载的证书和Key的所在位置配置到配置文件上。具体配置如下
创建配置 示例目录:/home/nginx/conf/nginx_ssl.conf

#定义Nginx运行的用户和用户组(默认不添加,启动后显示-nobody)
user root;

worker_processes  1; # Nginx 进程数,一般设置为和 CPU 核数一样

events {
    worker_connections  1024; # 每个进程允许最大并发数
}

http {
    default_type  application/octet-stream;  # 默认文件类型
    sendfile        on; # 开启高效传输模式
    keepalive_timeout  65; # 保持连接的时间,也叫超时时间,单位秒
    charset utf-8; # 设置编码格式
    
   server {    
	    listen 443 ssl; #监听443端口(https默认端口)
	    server_name www.xxx.com; #填写绑定证书的域名
	    ssl_certificate /home/xxx/xxx.crt; #填写你的证书所在的位置
	    ssl_certificate_key /home/xxx/xxx.key; #填写你的key所在的位置
	    ssl_session_timeout 5m;
	    ssl_protocols TLSv1 TLSv1.1 TLSv1.2; #协议配置
	    ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:HIGH:!aNULL:!MD5:!RC4:!DHE; #套件配置
	    ssl_prefer_server_ciphers on;
	    location / {
	     root  /home/xxx/ ; #填写你的你的站点目录
	     index index.html index.htm;
	   }
 }
}

5.重启服务器

下面我们进行服务器的重启,在重启之前先检验配置文件是否有错误

cd /usr/local/nginx/sbin 

#检测配置
nginx -t -c /home/nginx/conf/nginx_statis.conf

在这里插入图片描述
若没有报错则启动

./nginx -c /home/nginx/conf/nginx_ssl.conf 


访问地址示例:https://www.xxx.top

6.可选配置

6.1 HTTP请求转发到HTTPS

添加如下配置到nginx配置,这样访问 http也会默认跳转到https了

server {
    listen       80;
    server_name  www.xxx.com;#填写绑定证书的域名
    rewrite ^ https://$http_host$request_uri? permanent;    # 将http转到https
 }

重启指定配置命令

./nginx -s reload -c /home/nginx/conf/nginx_ssl.conf

7.常见错误

7.1unknown directive ssl

出现原因以及解决方案, 详见:传送门

7.2the “ssl” directive is deprecated, use the “listen … ssl”

Nginx配置SSL证书实现Https安全访问_第2张图片

你可能感兴趣的:(nginx)