Nginx如何给域名添加https(超详细配置文件解释)
1.申请SSL证书
这个去阿里云官网免费申请 https://www.aliyun.com/
在首页选择:产品分类→安全→SSL证书,点击打开
点击选购证书
选择单域名、DV SSL、免费版、未开通,这样子是免费的,点击下单购买
购买完成之后进入SSL证书控制台
点击证书申请,填写你想添加https的域名及相关信息
点击下一步,会让你在主机解析记录里加一条记录。如果是阿里云的服务器它会自动帮你加好,点击验证即可,不是的话就不用加(好像?)。
验证通过后把证书下下来,选择nginx版本。是一个zip压缩包,里面有.key和.pem文件
2.配置Nginx服务器
我自己用的是nginx,就只给出该服务器配置方法了,别的没试过
把证书压缩包里的两个文件上传到服务器,目录自选,我放在了/usr/local/nginx/conf/cert目录下(cert目录自建)
接着修改nginx.conf配置文件(位于/usr/local/nginx/conf目录)
先理一下文件结构,一般你现在的nginx.conf文件结构大概是这样
[code]...(几行代码) events { ...(几行代码) } http { ...(一堆代码) #默认80监听server server { listen 80 default_server reuseport; #listen [::]:80 default_server ipv6only=on; server_name _; index index.html index.htm index.php; ...(一堆代码) } #http的80监听server(你原来http网站访问的端口配置) server { listen 80; server_name xxx; #绑定域名 index index.htm index.html index.php; #默认文件 root xxx; #网站根目录 ...(一堆代码) } #我们准备在这里加上SSL配置 ...(SSL配置) #SSL配置结束 include vhost/*.conf; }
我们要做的就是,还是在http大括号内(不需要额外加https的大括号)再添加一个以下的server。
默认的80监听server和原来http的80监听server可以不用动,就相当于在http大括号中再添加一个443端口的监听,再按有注释(改)的地方修改对应的地方完成配置。
(如果服务器没开启443端口要记得开一下)
[code]# SSL配置 server { listen 443 ssl; #SSL协议访问端口号为443。此处如未添加ssl,可能会造成Nginx无法启动。 server_name localhost; #(改)将localhost修改为您证书绑定的域名,例如:www.example.com。 index index.htm index.html index.php; #默认文件 root /home/wwwroot/default/xxx; #(改)网站根目录 ssl_certificate cert/domain_name.pem; #(改)证书文件存放目录,将domain_name.pem替换成您证书的文件名。 ssl_certificate_key cert/domain_name.key; #(改)证书文件存放目录,将domain_name.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; #wordpress伪静态,不是wordpress应该就不用加了 location / { try_files $uri $uri/ /index.php?$args; } #这段是必备,没有好像就不能正常运行,加了就是了 location ~* \.(eot|ttf|woff|woff2)$ { add_header Access-Control-Allow-Origin '*'; } include enable-php.conf; location /nginx_status { stub_status on; access_log off; } location ~ .*\.(gif|jpg|jpeg|png|bmp|swf)$ { expires 30d; } location ~ .*\.(js|css)?$ { expires 12h; } location ~ /.well-known { allow all; } location ~ /\. { deny all; } #必备段到这结束 }
如果不再用http了就把原来的80端口监听server(不是默认的那个)改成重定向https这里面的server内容,访问http时会自动跳转到https,还想继续用http访问就不用改这段。
[code]#重定向https server { listen 80; server_name localhost; #(改)将localhost修改为您证书绑定的域名,例如:www.example.com。 rewrite ^(.*)$ https://$host$1 permanent; #将所有http请求通过rewrite重定向到https。 #下面这个不用动 location / { index index.html index.htm; } }
全部修改完成后应该是这样的结构(附带重定向)
[code]...(几行代码) events { ...(几行代码) } http { ...(一堆代码) #默认80监听server server { listen 80 default_server reuseport; #listen [::]:80 default_server ipv6only=on; server_name _; index index.html index.htm index.php; ...(一堆代码) } #重定向https(原为http的80监听端口) server { listen 80; server_name localhost; rewrite ^(.*)$ https://$host$1 permanent; location / { index index.html index.htm; } } # SSL配置 server { listen 443 ssl; ...(一堆代码) } include vhost/*.conf; }
修改完打开服务器命令行执行以下命令重启nginx后完成。
[code]nginx -s reload
- yii配置文件的详细解释之如何配置yii框架
- 【小平工作日志】nginx配置文件nginx.conf详细解释。
- ASP.NET配置文件Web.config 详细解释
- ASP.NET配置文件Web.config 详细解释
- 用Nginx如何配置运行无扩展名PHP文件或非.PHP扩展名文件
- ASP.NET配置文件Web.config 详细解释
- ASP.NET配置文件Web.config 详细解释
- VB.NET中如何添加配置文件(初级篇)
- 详细解释:nginx中ChsHttpProxyModule模块各项配置及其含义
- [转]httpd.conf详尽中文解释,如何配置设置,非常详细
- ASP.NET配置文件Web.config 详细解释
- ASP.NET配置文件Web.config 详细解释
- ASP.NET配置文件Web.config详细解释
- Nginx配置文件详细说明
- Nginx配置文件的常用设置(附详细说明及Nginx的proxy负载均衡、memcached负载均衡、反向代理)
- Nginx配置文件详细说明
- 用Nginx如何配置运行无扩展名PHP文件或非.PHP扩展名文件
- ASP.NET配置文件Web.config 详细解释
- ASP.NET配置文件Web.config 详细解释
- ASP.NET配置文件Web.config 详细解释