【安全】LNMP环境搭建&&生成Nginx的ssl证书

一、LNMP简介   

        LNMP通常指的是一组自由运行网站的一套系统的网站服务器架构组成,它集合了Linux,Nginx,Mysql,Php,全部都是开源免费的产品组成的。其中也可以有很多替代品,比如LNMP以前是没有的,以前是LAMP,A就是Apache,LAMP现在和LNMP都同样盛行。

        L:Linux是计算机操作系统的一种,是目前最流行的免费操作系统。代表版本有debian、centos、ubuntu等。

        N:Nginx是一个高性能的HTTP和反向代理服务器。

        M:Mysql是一个小型数据型数据库管理系统,自从被收购以后部分功能开始收费,也可以用Maridb,Mongon替代。

        P:php是一种在服务器端执行的嵌入HTML文档的脚本语言。

        这四种软件均为免费开源软件,组合到一起,成为一个免费、高效、扩展性强的网站服务系统。

二、环境搭建

Ⅰ、Linux

        后续都是在Linux的系统下来部署,这个就不用介绍了。

Ⅱ、nginx环境配置

①创建Nginx的目录然后进入

        【安全】LNMP环境搭建&&生成Nginx的ssl证书_第1张图片

②通过wget命令在线获取安装包并解压

        【去官网(nginx.org)看了眼目前最高版本1.23.3】 

 wget https://nginx.org/download/nginx-1.23.3.tar.gz
 tar -xvzf nginx-1.23.3.tar.gz

        【安全】LNMP环境搭建&&生成Nginx的ssl证书_第2张图片 

 

③下载并安装Nginx所需的依赖库和包 之后一键安装所有依赖包

yum -y install gcc zlib zlib-devel pcre-devel openssl openssl-devel
rpm -ivh --nodeps *.rpm

④进入解压后的nginx目录,执行Nginx的配置脚本,为后续安装提前配置好环境

cd nginx-1.23.3
./configure --prefix=/soft/nginx/

        【安全】LNMP环境搭建&&生成Nginx的ssl证书_第3张图片

⑤编译并安装Nginx       

make && make install

⑥修改Nginx的配置文件

vim /soft/nginx/conf/nginx.conf

 【安全】LNMP环境搭建&&生成Nginx的ssl证书_第4张图片

⑦制定配置文件并启动Nginx 

//在/soft/nginx下
sbin/nginx -c conf/nginx.conf
 ps aux | grep nginx

 【安全】LNMP环境搭建&&生成Nginx的ssl证书_第5张图片

⑧开放80端口更新防火墙,或者实验可以暂时关闭防火墙

firewall-cmd --zone=public --add-port=80/tcp --permanent
firewall-cmd --reload
firewall-cmd --zone=public --list-ports

⑨验证环节

        访问配置好nginx的主机ip

 【安全】LNMP环境搭建&&生成Nginx的ssl证书_第6张图片

 

Ⅱ、mysql环境配置

 ①安装依赖包

yum -y install gcc gcc-c++ ncurses ncurses-devel bison cmake

 ②下载并解压mysql

【安全】LNMP环境搭建&&生成Nginx的ssl证书_第7张图片

  ③安装mysql包

yum -y localinstall *.rpm

【安全】LNMP环境搭建&&生成Nginx的ssl证书_第8张图片

 ④开启服务并查看状态

[root@node mysql]# systemctl start mysqld.service 
[root@node mysql]# systemctl status mysqld.service 

【安全】LNMP环境搭建&&生成Nginx的ssl证书_第9张图片

 ⑤设置mysql的登录密码

//系统会为mysql创建一个随机密码,本机是prEipQ5y=Ug/
[root@node mysql]# grep 'temporary password' /var/log/mysqld.log

2023-02-09T17:32:53.818082Z 6 [Note] [MY-010454] [Server] A temporary password is generated for root@localhost: prEipQ5y=Ug/

 【输入密码登录mysql成功】【安全】LNMP环境搭建&&生成Nginx的ssl证书_第10张图片

 【如需修改,以下是修改的命令 //注意安全等级设置高点】

mysql> set global validate_password_policy=0
//上面这个把密码安全策略降为0就可以随便设置什么密码了
mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY 'nidemima';
Query OK, 0 rows affected (0.00 sec)

报错误ERROR 1193 (HY000): Unknown system variable ‘validate_password_policy‘的话

说明没有这个插件

解决:vim /etc/my.cnf【在mysqld下添加这仨之后重启】

 skip-grant-tables

//root免密登录

plugin-load-add=validate_password.so

//插件的加载方法,每次服务器启动时都必须给出该选项;
validate-password=FORCE_PLUS_PERMANENT

//validate-password在服务器启动时使用该选项来控制插件的激活。

 Ⅲ、php的配置

①安装php依赖

yum -y install libjpeg libjpeg-devel libpng libpng-devel freetype freetype-devel libxml2 libxml2-devel zlib zlib-devel curl curl-devel openssl openssl-devel

②编译安装php

cd /soft/php
wget http://mirrors.sohu.com/php/php-7.1.24.tar.gz
tar -xvzf php-7.1.24.tar.gz
[root@node php]# cd php-7.1.24
[root@node php-7.1.24]# ./configure \
> --prefix=/usr/local/php \		#指定将 PHP 程序安装到哪个目录下
> --with-mysql-sock=/usr/local/mysql/mysql.sock \		#设置Apache服务提供的apxs模块支持程序的文件位置
> --with-mysqli \		#mysqli扩展技术不仅可以调用MySQL的存储过程、处理MySQL事务,而且还可以使访问数据库工作变得更加稳定
> --with-zlib \		#支持zlib功能--压缩流
> --with-curl \		#开启curl扩展功能
> --with-gd \		#激活gd库的支持
> --with-jpeg-dir \		#激活jpeg的支持
> --with-png-dir \		#激活png的支持
> --with-freetype-dir \
> --with-openssl \
> --enable-mbstring \		#启用多字节字符串功能,以便支持中文等代码
> --enable-xml \
> --enable-session \
> --enable-ftp \
> --enable-pdo \
> --enable-tokenizer \
> --enable-zip \
> --enable-fpm		# ##开启php-fpm模块,使nginx能支持动态页面
[root@node php-7.1.24]# make && make install

②在nginx中解析php 

//在nginx.conf中配置      
  location ~ \.php$ {
            root           html;
            fastcgi_pass   127.0.0.1:9000;
            fastcgi_index  index.php;
            fastcgi_param  SCRIPT_FILENAME  /var/www/html$fastcgi_script_name;
            include        fastcgi_params;
        }

 ③测试

[root@node conf]# cd /var/www/html/
[root@node html]# vim index.php

 Ⅳ、Nginx的ssl证书配置

①随便创建一个放证书的目录然后进入创建证书

【安全】LNMP环境搭建&&生成Nginx的ssl证书_第11张图片

 然后生成证书文件,填写信息

openssl req -new -key ssl.key -out ssl.crs

【安全】LNMP环境搭建&&生成Nginx的ssl证书_第12张图片

 生成crt证书文件

openssl x509 -req -days 365 -in ssl.crs -signkey ssl.key -out ssl.crt

修改nginx.conf的配置文件

server {
    # 监听HTTPS默认的443端口
    listen 443 ssl;
    # 配置自己项目的域名
    server_name localhost;
    # 打开SSL加密传输
    ssl on;
    # 输入域名后,首页文件所在的目录
    root html;
    # 配置首页的文件名
    index index.html index.htm index.jsp index.ftl;
    # 配置自己下载的数字证书
    ssl_certificate  /etc/key/ssl.crt;
    # 配置自己下载的服务器私钥
    ssl_certificate_key /etc/key/ssl.key;
    # 停止通信时,加密会话的有效期,在该时间段内不需要重新交换密钥
    ssl_session_timeout 5m;
    # TLS握手时,服务器采用的密码套件
    ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4;
    # 服务器支持的TLS版本
    ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
    # 开启由服务器决定采用的密码套件
    ssl_prefer_server_ciphers on;
 
    location / {
       root   html;      
       index  index.html index.htm;
 
    }
}

你可能感兴趣的:(服务器,linux,数据库)