Nginx配置HTTPS
来源:互联网 发布:中小学同步辅导软件 编辑:程序博客网 时间:2024/06/05 02:15
Nginx配置HTTPS
最近配置了现网网站的HTTPS
,简单记录一下配置过程。
先交代一下我的服务部署环境:Nginx
监听80
端口,转发到Tomcat
的8080
端口;服务器使用的是阿里云的ECS
,操作系统是Windows Server 2012
;CA证书
也是在阿里云的CA证书服务上面申请的免费证书。
1. 申请CA证书
首先去购买CA证书。一般各大云服务提供商都会有此类证书服务,根据公司和业务需求,可以自己选择免费或者付费的证书。我这里选择的是Symantec 赛门铁克
的免费型DV SSL
,此类证书一个证书对应一个域名,如果涉及到二级域名需要另外申请一个二级域名的CA证书。阿里云上面的证书购买过程比较简单,需要注意的就两个地方:1.需要对域名进行验证;2.CSR
的生成方式。如果自己的域名是放在阿里云解析上面的,阿里云会自动校验;如果域名没有在阿里云上面解析,需要按照阿里云的提示进行一下操作。另外CSR的生成方式建议选择系统生成CSR
,自己生成CSR稍微麻烦一点。证书购买成功后补全好自己的域名即可。
2. Nginx配置
CA证书审核通过后,将证书下载到本地,会得到一个zip包,里面有xxx.key
和xxx.pem
两个文件。
1) 在Nginx
的安装目录下创建cert
目录,并将xxx.key
和xxx.pem
拷贝到该目录中。注意:如果是自己生成的CSR
文件,应该只有一个xxx.key
文件,将该文件拷贝进去就可以了。
2) 打开conf
目录中的nginx.conf
配置文件修改443
端口监听配置。Nginx默认配置是将443端口的监听配置注释掉了的,如下:
# HTTPS server# #server {# listen 443;# server_name localhost;# ssl on;# ssl_certificate cert.pem;# ssl_certificate_key cert.key;# ssl_session_timeout 5m;# ssl_protocols SSLv2 SSLv3 TLSv1;# ssl_ciphers ALL:!ADH:!EXPORT56:RC4+RSA:+HIGH:+MEDIUM:+LOW:+SSLv2:+EXP;# ssl_prefer_server_ciphers on;# location / {###}#}
将注释打开,并对其中部分内容进行修改,修改后如下:
server { listen 443; server_name your-domain-name; ssl on; root html; index index.html index.htm; ssl_certificate cert/214293826510663.pem; ssl_certificate_key cert/214293826510663.key; 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; ssl_prefer_server_ciphers on; location / { root html; index index.html index.htm; }}
3) 修改配置并保存后,Nginx安装目录运行nginx.exe -s reload
命令可重启Nginx使配置生效。
4) 通过https:\\xxxx.com
方式访问你的网站,如果能够正常访问,浏览器左边出现绿色的标记或者出现锁的标记那就成功了。
几点注意事项:
1. 如果HTTPS方式访问网站出现无响应的情况,可以看看自己的服务器防火墙配置
,是不是需要将443
端口加到例外中去;
2. 注意自己xxx.pem
和xxx.key
的存放路径,区分相对路径和决定路径使用方式;
3. 通过Nginx
安装目录下的logs
文件夹中的access.log
和error.log
日志文件来进行排错;
4. 同一个Nginx
可以配置多个HTTPS
的域名,只需要将上面443
端口的监听配置复制一份加到配置文件中,然后修改好相应的server_name
、xxx.pem
和xxx.key
文件路径即可。
补充一点配置:
如果Nginx
配置了HTTPS
,那背后的Tomcat
就没有必要再进行配置了,另外,为了兼容原来80
端口的HTTP
方式的访问,可以将80端口的访问请求全部转发到443端口上,增加配置如下:
server { listen 80; server_name your-domain.com; location = / { rewrite ^(.*) https://your-domain.com/$1 permanent; } location / { rewrite ^(.*) https://your-domain.com/$1 permanent; }}
- Nginx(12):nginx配置https
- nginx 配置https server
- nginx 配置https
- Nginx 配置 https 加密
- Nginx配置https服务器
- Ubuntu nginx 配置https
- nginx https配置
- nginx配置https
- nginx 配置https
- nginx 配置HTTPS服务器
- Linux nginx配置https
- nginx 配置https 环境
- Nginx配置Https
- nginx配置https
- Nginx配置https访问
- nginx配置https服务
- nginx配置https方法
- nginx配置https
- SecureCRT连接linux,vim颜色显示问题
- MySQL 对于千万级的大表要怎么优化
- 前端问题
- Sophix冷热补丁小结
- mysqldump数据库备份,参数详解
- Nginx配置HTTPS
- 内存泄漏问题总结
- Extjs如何锁定Grid的列?
- iOS项目源码地址
- Eclipse 更改maven web项目
- Centos7&Python2.7&django&uwsgi&mariadb&python虚拟环境
- 关于一行文字多个点击事件
- 任学堂:“进击的AI”,人工智能未来将是人类头号威胁?
- php 一个账号禁止多浏览器多用户登录