本篇文章主要记录下自己配置 网站实现https请求的步骤和自己遇到的一些问题。
在腾讯云同时也提供了免费的SSL证书(有效期1年)。
我们进入SSL证书管理控制台,点击【申请证书】
Nginx 证书部署 首先到你的腾讯云下载你的证书www.***.com.zip的压缩包,解压后有不同服务器的证书文件,这里只要Nginx的就可以了
将Nginx文件中的1_www.***.com_bundle.crt和2_www.***.com.key上传至你的服务器中,我将文件放在了/etc/nginx下。
接下来修改你的Nginx配置文件nginx.conf: server { listen 443; server_name www..com; #填写绑定证书的域名 ssl on; ssl_certificate 1_www..com_bundle.crt; ssl_certificate_key 2_www..com.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 html; #站点目录 index index.html index.htm; } } 配置完成后,先用bin/nginx –t来测试下配置是否有误,正确无误的话,然后通过service nginx restart重启nginx。就可以使 https://www.**.com 来访问了。
这里有几个问题需要注意下:
配置文件的证书文件的地址一定要指定对,可能你没有放在Nginx的根目录下。 端口问题,http是80端口,但https是443,在配置nginx的时候千万别忘记修改端口。 相关参数说明供参考:
http自动跳转https 配置到这里如果没有意外的话已经可以通过https访问了,但可能很多用户还是会通过http访问,所以需要将你原来的http重定向到你的https上。
只需要在Nginx配置中加入下面配置:
rewrite ^ https:// h t t p h o s t http_host httphostrequest_uri? permanent;
但要注意的是,不是在你原来443端口下加,这样会死循环的,而是另外启个server,类似于下面的配置:
server { listen 80; server_name www.***.com; rewrite ^ https:// h t t p h o s t http_host httphostrequest_uri? permanent; # force redirect http to https }
server { listen 443; server_name www..com; #填写绑定证书的域名 ssl on; ssl_certificate 1_www..com_bundle.crt; ssl_certificate_key 2_www.**.com.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 html; #站点目录 index index.html index.htm; } } 这样就能实现重定向了。
如果想同时启用Http和Https,也可以这样配置:
server { listen 80; listen 443 ssl; server_name www.***.com; ssl_certificate www.***.com.crt; ssl_certificate_key www.***.com.key; … }
配置的时候还是多试试,然后访问的页面要放到这个配的nginx的目录下就行。 附;个人配置: server { listen 80; listen 443 ssl; server_name api.yidianwan.cn; #server_name localhost; ssl on; ssl_certificate /etc/nginx/conf/1_api.yidianwan.cn_bundle.crt;# 改成你的证书的名字 ssl_certificate_key /etc/nginx/conf/2_api.yidianwan.cn.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 /usr/share/nginx/html/; } location /pictures/ { proxy_pass http://apiServer; proxy_http_version 1.1; } include /etc/nginx/default.d/location.conf;}