operation 06
    =============================================
    一,使用tomcat搭建https网站
    1,准备工作,先还原环境
    killall java
    cd ~/lnmp_soft
    rm -rf /usr/local/tomcat/
    cp -r apache-tomcat-8.0.30 /usr/local/tomcat
    yum -y install java-1.8.0-openjdk
    cd /usr/local/tomcat/
    bin/startup.sh //开启服务
    netstat -ntulp | grep java //检查端口,需要看到8005、
    8009、8080端口

    vim conf/server.xml //修改配置文件,打开找到85行,将前后的注释删除
    <Connector port=”8443” protocol=”org.apache.coyote.http11.Http11NioProtocol”
    maxThreads=”150” SSLEnabled=”true” scheme=”https” secure=”true”
    clientAuth=”false” sslProtocol=”TLS”
    keystoreFile=”/usr/local/tomcat/keystore”
    keystorePass=”123456”** /> //这里
    添加keystoreFile(指定公钥私钥文件)和keystorePass(公钥私钥文件密码)**

    keytool -genkeypair -alias tomcat -keyalg RSA
    -keystore /usr/local/tomcat/keystore //创建密钥对,别名是tomcat,加
    密算法是RSA,最后是存储位置
    输入密钥库口令: 输入123456
    再次输入新口令: 再次输入123456
    您的名字与姓氏是什么?
    [Unknown]: dc
    。。。。。
    CN=dc, OU=dc, O=dc, L=dc, ST=dc, C=dc是否正确?
    [否]: y
    输入 的密钥口令
    (如果和密钥库口令相同, 按回车): **直接回车
    Warning:
    ls //检查下/usr/local/tomcat下面会产生keystore则成功**

    bin/shutdown.sh //重启tomcat
    bin/startup.sh
    netstat -ntulp | grep java //检查可以看到8443端口
    echo “tomcat-https~~” > webapps/ROOT/index.html //准备测试页面
    curl -k https://192.168.99.5:8443 //访问安全加密网站

    ——————————————————————————————
    二,将源码包转换为rpm包
    [root@proxy ~]# yum -y install rpm-build //安装制作rpm包的工具
    [root@proxy ~]# rpmbuild -ba nginx.spec //制作rpm包,但是没有配
    置文件会报错,报错也需要敲,会产生所需的目录
    [root@proxy ~]# ls //可以看到一个rpmbuild目录
    [root@proxy ~]# cp ~/lnmp_soft/nginx-1.17.6.tar.gz rpmbuild/SOURCES/
    //拷贝源码包到rpmbuild的工作目录
    [root@proxy ~]# yum -y install gcc make pcre-devel openssl-devel
    vim rpmbuild/SPECS/nginx.spec //编写将nginx转换为rpm包的配置文件
    Name:nginx //软件名
    Version:1.17.6 //版本
    Release:1 //发布的rpm包的版本
    Summary:test~ //简单描述
    #Group:
    License:GPL //授权协议 ,GPL表示自由软件
    URL:www.abc.com //网址
    Source0:nginx-1.17.6.tar.gz //源码包
    #BuildRequires:
    #Requires:
    %description //详细描述
    test~ test~
    %post //可以添加安装rpm包之后执行的命令,不是必须
    useradd nginx
    %prep
    %setup -q
    %build
    ./configure //配置,如果要添加选项或者模块可以继续写
    make %{?_smp_mflags} //编译
    %install
    make install DESTDIR=%{buildroot} //安装
    %files
    %doc
    /usr/local/nginx/* //将改路径下文件打包成rpm
    %changelog
    rpmbuild -ba rpmbuild/SPECS/nginx.spec //根据上述文件制作rpm包
    ls rpmbuild/RPMS/x86_64/nginx-1.17.6-1.x86_64.rpm //查看最终结果,
    已经产生nginx的rpm包则成功

    —————————————————————————————————————————-
    三,VPN 虚拟专用网
    1,使用gre技术搭建vpn,适用于linux环境
    [root@web1 ~]# modprobe ip_gre //在内核中开启gre功能
    [root@web1 ~]# lsmod | grep gre //检查,可以看到gre字样信息即可
    ip tunnel add tun0 mode gre remote 192.168.99.200 local 192.168.99.100 //创建
    vpn隧道,名字叫tun0,mode是使用gre技术,与99.200连接,自己ip是99.100
    ip tunnel **del tun0 //如果错误**,可以删除重配
    ip addr add 10.10.10.100/8 peer 10.10.10.200/8 dev tun0 //在tun0隧道(dev)中使
    用私有ip地址,本机是10.100 ,对面(peer)是10.200
    ip addr **del 10.10.10.100/8 peer 10.10.10.200/8 dev tun0 //如果错误**可以删除
    ip link set tun0 up //激活tun0
    ip addr show tun0 //查看

    2,使用xl2tp搭建vpn,支持windows环境
    第一个环节,配置加密:
    [root@web1 vpn]# yum -y install libreswan //安装加密工具
    [root@web1 vpn]# cp myipsec.conf /etc/ipsec.d/ //复制配置文件到
    ipsec.d目录
    [root@web1 vpn]# vim /etc/ipsec.d/myipsec.conf //修改配置第16行
    left=192.168.99.100 //设置为本机ip
    vim /etc/ipsec.secrets //修改配置,添加加密信息
    192.168.99.100 %any: PSK “randpass” //另起一行,添加99.100是本机
    ip,%any:是允许任何客户机连接本服务器,PSK是预共享密钥,randpass
    是密码,等windows客户连接vpn服务器时需要该密码

    然后安装vpn工具
    rpm -ivh xl2tpd-1.3.8-2.el7.x86_64.rpm
    vim /etc/xl2tpd/xl2tpd.conf //打开配置文件,32、33行
    ip range = 10.10.10.10-10.10.10.18 //给客户分配的ip
    local ip = 192.168.99.100 //本机ip
    vim /etc/ppp/options.xl2tpd //修改配置文件,将第10、16行
    注释掉,删除掉21行的#以及空格,就可以启用加密

    创建账户
    yum -y install ppp //安装vpn依赖软件包
    vim /etc/ppp/chap-secrets //定义windows客户机的用户名和密码
    tom 123456 //另起一行创建用户tom,配置密码123456

    开启服务
    systemctl start ipsec //开启加密服务
    netstat -ntulp |grep :500 //之后检查加密服务
    systemctl start xl2tpd //开启xl2tpd服务
    netstat -ntulp |grep xl2tpd
    operation 06 - 图1
    最下面输入用户名tom 密码 123456

    如果配置没有问题,但依然无法成功(比如报了789之类的错误代码),那么可以尝试下面方法修改windows的注册表
    单击”开始”,单击”运行”,键入”regedit”,然后单击”确定”
    找到下面的注册表子项,然后单击它:
    HKEY_LOCAL_MACHINE\ System\CurrentControlSet\Services\Rasman\Parameters
    在”编辑”菜单上,单击”新建”->”DWORD值”
    在”名称”框中,键入”ProhibitIpSec”
    在”数值数据”框中,键入”1”,然后单击”确定”
    退出注册表编辑器,然后重新启动计算机


    1. 编写Unit文件,使systemctl命令控制nginx

    cd /usr/lib/systemd/system
    cp httpd.service nginx.service //拷贝模板
    vim nginx.service //修改
    [Service]
    Type=forking //nginx是多进程类型程序,要设置为forking
    ExecStart=/usr/local/nginx/sbin/nginx //当执行了systemctl start nginx之后执行的命令
    ExecReload=/usr/local/nginx/sbin/nginx -s reload //当执行了systemctl reload nginx之后执行的命令
    ExecStop=/bin/kill -s QUIT $MAINPID //当执行了systemctl stop nginx之后执行的命令,这里是用kill命令发送退出信号给nginx的进程号,相当于停止nginx服务,-s QUIT是发送退出信号,使nginx优雅关闭(处理完客户请求才退出),$MAINPID是变量,里面存了nginx的进程号

    [Install]
    WantedBy=multi-user.target //支持开机自启

    systemctl daemon-reload //激活刚才的test.service文件,但有时可能不好使,可以重启系统
    然后重启服务之后可以用systemctl等命令控制nginx
    提示:必须要提前先安装好nginx服务,并且没有其他服务占用80端口!


    云计算脱产学员(VMware版本虚拟机实验环境):
    链接:https://pan.baidu.com/s/1HtAb-73_OzwqwpNMOFMsMw
    提取码:5wyg

    后面课程笔记:
    百度云盘链接: https://pan.baidu.com/s/1l0fozUtEniFXbWr4z4lPBA 提取码: a98a
    或通过以下命令:
    git clone https://gitee.com/mrzhangzhg/nsd2022.git