Nginx - 配置 SSL证书
nginx 配置 ssl 证书
1、在nginx配置目录创建 cert目录 放置 SSL 的证书秘钥;
mkdir cert && cd cert
2、 创建证书秘钥文件 nginx.key
openssl genrsa -des3 -out nginx.key 1024
## 设置密码 132456
3、创建证书申请文件 nginx.csr
openssl req -new -key nginx.key -out nginx.csr ## 根据提示输入信息: Enter pass phrase for root.key: ## 输入前面创建的密码 Country Name (2 letter code) [AU]:CN ## 国家代码 State or Province Name (full name) [Some-State]:ShangHai ## 省份 Locality Name (eg, city) []:shanghai ## 市区 Organization Name (eg, company) [Internet Widgits Pty Ltd]:abc ## 公司 Organizational Unit Name (eg, section) []:bb ## 部门 Common Name (e.g. server FQDN or YOUR name) []:* ## 域名 *不指定 Email Address []:bb@abc.com ## 邮箱 Please enter the following 'extra' attributes to be sent with your certificate request A challenge password []: #设置证书密码 An optional company name []: #其他公司
4、配置示例:
5、创建RSA 证书
openssl rsa -in nginx.key -out nginx_1.key
6、签发证书 生成 证书文件 nginx.crt
openssl x509 -req -days 3650 -in nginx.csr -signkey nginx.key -out nginx.crt
7、nginx 配置 SSL 证书示例:
server { listen 443 ssl; # ssl on; # 配置只 https 访问; ssl_certificate cert/nginx.crt; ssl_certificate_key cert/nginx_1.key; ssl_session_cache shared:SSL:1m; ssl_session_timeout 10m; ssl_ciphers HIGH:!aNULL:!MD5; ssl_prefer_server_ciphers on; server_tokens off; # 禁止在header中出现服务器版本号; fastcgi_param HTTPS on; fastcgi_param HTTP_SCHEME https; # 如果是全站 HTTPS 并且不考虑 HTTP 的话,可以加入 HSTS 告诉你的浏览器本网站全站加密,并且强制用 HTTPS 访问。 access_log /opt/nglogs/httpsaccess.log; location / {
allow 172.16.2.19; # 访问白名单 allow 172.16.2.21; # 访问白名单 deny all; # 禁止 root /www; index index.html index.htm index.php; proxy_set_header Host $http_host; #保留代理之前的host proxy_set_header X-Real-IP $remote_addr; #保留代理之前的真实客户端ip proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header HTTP_X_FORWARDED_FOR $remote_addr; #在多级代理时记录每次代理之前的客户端真实ip } error_page 404 /404.html; location = /40x.html { } error_page 500 502 503 504 /50x.html; location = /50x.html { } }
8、重新加载生效;
# nginx -s reload