Nginx配置SSL证书(Https)给WordPress网站
Nginx配置SSL证书(Https)给WordPress网站

Nginx配置SSL证书(Https)给WordPress网站

内容纲要

前置条件:

服务器已经安装nginx和WordPress网站并且通过http可以正常访问。

1.去免费申请一个SSl证书

推荐一个SSL For Free网站:

网站地址:https://www.sslforfree.com

添加自己需要应用SSL证书的域名,比如我的WordPress网站域名*(tutujanjan.world),然后点击Create Free SSL Certificate按钮,系统会自动补齐www域名或者不带www域名。

1.然后我们选择90天证书

2.然后取消自动生成 CSR进行手动配置

3.输入邮件地址 城市 国家点击下一步

4.接着就可以下载一个TXT文件保存到本地

2.验证域名所有权

1.根据网站的提示到我们的服务器网站根目录添加文件夹

列如我的情况

/home/wwwroot/wordpress/.well-known/pki-validation

网站根目录为wordpress在下面创建

.well-known/pki-validation

2.把下载下来的TXT文件导入进去。

然后网站点击验证域名。验证成功就可以下载一个证书的安装包

分别是certificate.crt、ca_bundle.crt,以及private.key。

3.免费SSL证书部署网站

  1. 合并certificate.crt、ca_bundle.crt(其实就是用文本编辑器打开,然后把里面的代码复制到一起。)
  2. 把合并好的.crt文件改名为自己喜欢的名字,比如tutu.crt
  3. 然后在服务器中创建了一个SSL目录”/usr/local/nginx/conf/ssl/”,然后将合并的文件(laobuluo.crt)以及private.key,一并上传进去。

4.配置Nginx文件启动SSL证书

这一步我折腾了好久,格式一定要填对,网上找的教程很多和现在格式都不正确。

1.修改nginx.conf配置

首先进入nginx的安装目录

一般在/usr/local/nginx/conf里面

打开它或者使用命令

cd /usr/locla/nginx/conf
#修改nginx.conf文件
vim nginx.conf

2.找到server这一行进行修改

格式一定要对。

简单说明以下

server
    {
        listen 443;                 #监听443端口
        #listen [::]:80 default_server ipv6only=on;
        server_name tutujanjan.world;           #你的域名
        index index.html index.htm index.php;
        root  /home/wwwroot/wordpress;        #站点目录。
	ssl on;   #开启ssl
	ssl_certificate     /usr/local/nginx/conf/ssl/tutu.crt;        #ssl证书的crt文件路径
	ssl_certificate_key /usr/local/nginx/conf/ssl/private.key;         #ssl证书的key文件路径
        #error_page   404   /404.html;

        # Deny access to PHP files in specific directory
        #location ~ /(wp-content|uploads|wp-includes|images)/.*\.php$ { deny all; }

        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;
        }

        access_log  /home/wwwlogs/access.log;
    }
include vhost/*.conf;
}

3.配置完成后,检查一下nginx配置文件是否可用,有successful表示可用。

$ nginx -t // 检查nginx配置文件

4.配置正确后,重新加载配置文件使配置生效:

nginx -s reload // 使配置生效

5.如需重启nginx,用以下命令:

$ service nginx stop // 停止
$ service nginx start // 启动
$ service nginx restart // 重启

5.测试是否成功

输入http://138.3.221.41 看看能否成功访问。

6.重定向到 443 端口

本来以为就结束了,然后我最后发现一个问题,就是必须手动输入https://在浏览器才能访问。

我们需要把80端口的http://重定向到443端口。

打开nginx.conf配置文件

在server上面再添加一行

server
    {
        listen 443;                 #监听443端口
        #listen [::]:80 default_server ipv6only=on;
        server_name tutujanjan.world;           #你的域名
        index index.html index.htm index.php;
        root  /home/wwwroot/wordpress;        #站点目录。
	ssl on;   #开启ssl

相关配置:

server {
    listen 80;
    server_name YOUR_DOMAIN;
    rewrite ^(.*)$ https://${server_name}$1 permanent;     
}

比如我的就是这样的

搞定,只需要输入域名都能访问https://而不需要手动输入了。

总结

对于小白用户,前面步骤都挺轻松的,后面的配置信息因为格式不对,导致我一直没成功,折腾了半天。

建议配置nginx.conf的时候对它先进行一次备份。

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注