当前位置:   article > 正文

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

【安全】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的目录然后进入

        

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

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

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

         

 

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

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

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

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

        

⑤编译并安装Nginx       

make && make install

⑥修改Nginx的配置文件

vim /soft/nginx/conf/nginx.conf

 

⑦制定配置文件并启动Nginx 

  1. ///soft/nginx下
  2. sbin/nginx -c conf/nginx.conf
  3. ps aux | grep nginx

 

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

  1. firewall-cmd --zone=public --add-port=80/tcp --permanent
  2. firewall-cmd --reload
  3. firewall-cmd --zone=public --list-ports

⑨验证环节

        访问配置好nginx的主机ip

 

 

Ⅱ、mysql环境配置

 ①安装依赖包

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

 ②下载并解压mysql

  ③安装mysql包

yum -y localinstall *.rpm

 ④开启服务并查看状态

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

 ⑤设置mysql的登录密码

  1. //系统会为mysql创建一个随机密码,本机是prEipQ5y=Ug/
  2. [root@node mysql]# grep 'temporary password' /var/log/mysqld.log
  3. 2023-02-09T17:32:53.818082Z 6 [Note] [MY-010454] [Server] A temporary password is generated for root@localhost: prEipQ5y=Ug/

 【输入密码登录mysql成功】

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

  1. mysql> set global validate_password_policy=0
  2. //上面这个把密码安全策略降为0就可以随便设置什么密码了
  3. mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY 'nidemima';
  4. 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

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

②在nginx中解析php 

  1. //在nginx.conf中配置
  2. location ~ \.php$ {
  3. root html;
  4. fastcgi_pass 127.0.0.1:9000;
  5. fastcgi_index index.php;
  6. fastcgi_param SCRIPT_FILENAME /var/www/html$fastcgi_script_name;
  7. include fastcgi_params;
  8. }

 ③测试

  1. [root@node conf]# cd /var/www/html/
  2. [root@node html]# vim index.php
  1. <?php
  2. phpinfo();
  3. ?>

 Ⅳ、Nginx的ssl证书配置

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

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

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

 生成crt证书文件

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

修改nginx.conf的配置文件

  1. server {
  2. # 监听HTTPS默认的443端口
  3. listen 443 ssl;
  4. # 配置自己项目的域名
  5. server_name localhost;
  6. # 打开SSL加密传输
  7. ssl on;
  8. # 输入域名后,首页文件所在的目录
  9. root html;
  10. # 配置首页的文件名
  11. index index.html index.htm index.jsp index.ftl;
  12. # 配置自己下载的数字证书
  13. ssl_certificate /etc/key/ssl.crt;
  14. # 配置自己下载的服务器私钥
  15. ssl_certificate_key /etc/key/ssl.key;
  16. # 停止通信时,加密会话的有效期,在该时间段内不需要重新交换密钥
  17. ssl_session_timeout 5m;
  18. # TLS握手时,服务器采用的密码套件
  19. ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4;
  20. # 服务器支持的TLS版本
  21. ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
  22. # 开启由服务器决定采用的密码套件
  23. ssl_prefer_server_ciphers on;
  24. location / {
  25. root html;
  26. index index.html index.htm;
  27. }
  28. }
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/花生_TL007/article/detail/230737
推荐阅读
相关标签
  

闽ICP备14008679号