Nginx 配置 HTTPS

服务器上已经安装nginx服务,已经具备http访问;
nginx服务器是否已经安装ssl模块得支持;
是否已经拥有ssl证书;

查看nginx 安装模块

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

Nginx 配置 HTTPS_第1张图片

 如果看到我上图标记得 configure arguments: --with-http_ssl_module, 则已安装

如果之前没有安装更新步骤

cd nginx
./configure --prefix=/usr/local/nginx --with-http_ssl_module

使用 make 命令编译(使用make install会重新安装nginx),此时当前目录会出现 objs 文件夹。用新的 nginx 文件覆盖当前的 nginx 文件

在这里插入图片描述

cp ./objs/nginx /usr/local/nginx/sbin/

ssl 证书部署

下载申请好的 ssl 证书文件压缩包到本地并解压(这里是用的 pem 与 key 文件,文件名可以更改)。
在 nginx 目录新建 cert 文件夹存放证书文件。

 cd /usr/local/nginx
 mkdir cert

nginx 配置

    server {
	 listen 443; #SSL 访问端口号
	 server_name soft.loiot.com; #填写绑定证书的域名
	 ssl on; #启用 SSL 功能
	 ssl_certificate ../cert/c.pem; #证书文件名称
     ssl_certificate_key ../cert/c.key; #私钥文件名称
	 ssl_session_timeout 5m;
	 ssl_protocols TLSv1 TLSv1.1 TLSv1.2; #请按照这个协议配置
	 ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:HIGH:!aNULL:!MD5:!RC4:!DHE; #请按照这个套件配置,配置加密套件,写法遵循 openssl 标准。
	 ssl_prefer_server_ciphers on;
		 
	 location / {
	     # 指向本地服务
         proxy_pass          http://127.0.0.1:7005;
		 proxy_set_header   Host             $host;
		 proxy_set_header   X-Real-IP        $remote_addr;
		 proxy_set_header   X-Forwarded-For  $proxy_add_x_forwarded_for;
	 }
	 
	 
	}

将 http 重定向 https

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

nginx配置多个ssl

配置多个只需要配置多个server就行了

	server {
        listen 443 ssl;
        #填写绑定证书的域名
        server_name xxx.com; 
        #证书文件名称
        ssl_certificate  ../cert/xxx.com_bundle.crt; 
        #私钥文件名称
        ssl_certificate_key ../cert/xxx.com.key; 
        ssl_session_timeout 5m;
        ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4;
        ssl_protocols TLSv1.2 TLSv1.3;
        ssl_prefer_server_ciphers on;
        
        client_max_body_size 1024m;
        location / {
          proxy_pass http://halo;
          proxy_set_header HOST $host;
          proxy_set_header X-Forwarded-Proto $scheme;
          proxy_set_header X-Real-IP $remote_addr;
          proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        }
    }
    
    server {
        listen 443 ssl;
        #填写绑定证书的域名
        server_name xxx.xxx.com; 
        #证书文件名称
        ssl_certificate  ../cert/8506918_xxx.com.pem; 
        #私钥文件名称
        ssl_certificate_key ../cert/8506918_xxx.com.key; 
        ssl_session_timeout 5m;
        ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4;
        ssl_protocols TLSv1.2 TLSv1.3;
        ssl_prefer_server_ciphers on;
        
        client_max_body_size 1024m;
        location / {
          proxy_pass http://localhost:9000;
          proxy_set_header HOST $host;
          proxy_set_header X-Forwarded-Proto $scheme;
          proxy_set_header X-Real-IP $remote_addr;
          proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
     

你可能感兴趣的:(nginx,https,服务器)