nginx使用自签证书配置https

首先生成https证书

 


# 输入下面命令
openssl genrsa -out server.key 1024

# 生成服务器证书(主要是要填写Common Name ,就是你的ip或者域名)
openssl req -new -key server.key -out server.csr

# 对证书签名
openssl x509 -req  -days 365 -sha256 -in server.csr -signkey server.key -out servernew.crt

 

配置nginx

 


server {

listen 443 ssl;

server_name 你的域名;

index index.html index.htm index.php;

ssl on;
ssl_certificate /var/web/ssl/servernew.crt;
ssl_certificate_key /var/web/ssl/server.key;

}

centos7.4安装jdk1.8

首先在官网下载rpm安装包,打开网址:http://www.oracle.com/technetwork/java/javase/downloads/index.html

 

 

 

右击复制rpm安装包链接之后,就可以通过下面命令下载了


wget --no-check-certificate --no-cookies --header "Cookie: oraclelicense=accept-securebackup-cookie" 复制的链接

然后一句命令安装


rpm -ivh jdk-8u171-linux-x64.rpm

centos7.4安装php7

只需要执行下面的命令:

 


rpm -Uvh https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm

rpm -Uvh https://mirror.webtatic.com/yum/el7/webtatic-release.rpm

yum install php71w php71w-fpm php71w-cli php71w-common php71w-devel php71w-gd php71w-pdo php71w-mysql php71w-mbstring php71w-bcmath

 

启动php-fpm

 


service php-fpm start

一行命令为你的网站加上小绿锁

出于安全性考虑,我们应该为我们的网站配置https支持,一般来说https证书都需要钱买,但是Let’s Encrypt却免费提供https证书给我,只不过每三个月就需要重新生成。

 

下面给出生成证书的命令(注意域名要绑定到执行这句命令的服务器,blog.yubang.app改成自己的域名)

 


docker run --rm -p 80:80 -p 443:443 -v /etc/letsencrypt:/etc/letsencrypt quay.io/letsencrypt/letsencrypt auth --standalone -m yubang@yubangweb.com --agree-tos -d blog.yubang.app

 

由于上面的命令使用到docker,请先安装。并且可能国外的镜像下载比较慢,所以同步了镜像到腾讯云,所以也可以执行下面的命令

 


docker run --rm -p 80:80 -p 443:443 -v /etc/letsencrypt:/etc/letsencrypt quay.io/letsencrypt/letsencrypt auth --standalone -m yubang@yubangweb.com --agree-tos -d blog.yubang.app

 

生成了证书之后,当然就是配置nginx了,给出配置(blog.yubang.app改成自己的域名)

 


server {
listen 80;
listen 443 ssl;
server_name blog.yubang.app;

ssl_certificate /etc/letsencrypt/live/blog.yubang.app/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/blog.yubang.app/privkey.pem;
ssl_trusted_certificate /etc/letsencrypt/live/blog.yubang.app/chain.pem;

location / {

}

}

 

多层nginx实现https访问WordPress

我们先看一个场景,假如有服务器A和服务器B,两台服务器上都有nginx,然后WordPress部署在服务器B上。浏览器通过https访问服务器A,然后服务器A与服务器B的通讯是基于http协议的。然后这个时候我们就会发现,WordPress的静态资源都会走http协议,这个时候我们该如何处理呢,很简单,只需要修改服务器B的nginx配置即可。

 

配置如下:

 


server{
listen 10000;
index index.html index.htm index.php;
root /var/web/blog;

location / {

}
location ~ .php$ {
fastcgi_param HTTPS on;
fastcgi_param HTTP_HOST 'blog.yubang.app';

fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
}

 

 

解决WordPress安装主题或者插件需要ftp的问题

解决方案其实很简单,在项目的wp-content文件夹创建一个文件夹叫做tmp,然后给777的权限。

然后在wp-config.php文件的require_once(ABSPATH . ‘wp-settings.php’);前面添加下面的代码

define('WP_TEMP_DIR', ABSPATH.'wp-content/tmp');
define("FS_METHOD", "direct");
define("FS_CHMOD_DIR", 0777);
define("FS_CHMOD_FILE", 0777);