实践笔记-nginx配置ssl证书

在nginx的安装目录下创建个目录用来存放证书

mkdir cert

openssl证书生成

  • 生成key:openssl genrsa -des3 -out server.key 2048
  • 通过以下方法生成没有密码的key:openssl rsa -in server.key -out server.key
  • 生成CA的crt:(用来签署下面的server.csr文件) openssl req -new -x509 -key server.key -out ca.crt -days 3650
  • 生成csr: openssl req -new -key server.key -out server.csr
  • 生成crt:openssl x509 -req -days 3650 -in server.csr -CA ca.crt -CAkey server.key -CAcreateserial -out server.crt

在nginx.conf中添加以下配置

server {
    listen       4966 ssl;  # (需要修改的地方)https监听端口,改成自己需要的端口即可
    server_name  localhost; # (需要修改的地方)监听的服务地址
	ssl_certificate      /etc/nginx/cert/server.crt;  # (需要修改的地方)生成的证书
	ssl_certificate_key  /etc/nginx/cert/server.key;  # (需要修改的地方)证书key
	ssl_session_cache    shared:SSL:1m;
	ssl_session_timeout  30m;
	ssl_ciphers  HIGH:!aNULL:!MD5;
	ssl_prefer_server_ciphers  on;

	location / {
        proxy_pass https://localhost:80;  # (需要修改的地方)被转发的IP地址端口
        proxy_set_header   Host                      $http_host;
        proxy_set_header   X-Real-IP              $remote_addr;
        proxy_set_header   X-Forwarded-For  $proxy_add_x_forwarded_for;
        proxy_set_header REMOTE-HOST     $remote_addr;
        proxy_next_upstream error timeout invalid_header http_500 http_502 http_503 http_504;
    }
}

这样之后重启nginx就OK了。
之前遇到过配置文件中英文空格的问题,导致报错,所以也需要注意下。

一些其他相关的笔记

如果是在docker中的nginx
docker-compose.yml文件中挂载证书+端口映射

nginx:
    image: nginx:1.22.1
    container_name: nginx
    restart: always
    ports:
      - "80:80"
      - "4966:4966"
    networks:
      xinjiang:
        aliases:
          - nginx.com
    volumes:
      - /data/web:/usr/share/nginx/web
      - /data/nginx/conf/nginx.conf:/etc/nginx/nginx.conf
      - /data/nginx/logs:/var/log/nginx
      - /data/nginx/cert/server.crt:/etc/nginx/cert/server.crt
      - /data/nginx/cert/server.key:/etc/nginx/cert/server.key

你可能感兴趣的:(项目部署相关,nginx,ssl,运维)