搭建了一个xampp的一个靶机,并且从网上下载了pikachu 这个软件,安装到了xampp中,现在时需要通过https访问该web页面,所以要配置https访问,第一步就需要获取证书。
1、首先确认自己的linux系统中要安装了 openssl, 通过 yum install -y openssl 安装。
2、进入到指定目录 进行清空操作
cd /etc/pki/CA
rm -rf *
3、创建相关的目录和文件
mkdir demoCA
cd /demoCA
touch index.txt
echo 01 > serial
mkdir newcerts
4、环境正好以后开始生成证书,进入到指定证书
1) cd /etc/pki/CA
2) 生成服务端的key文件
openssl genrsa -out server.key 1024 #完成后,会在CA目录下生成server.key文件
3)生成签署申请
openssl req -new -out server.csr -key server.key
#完成后,会在CA目录下生成server.csr文件,其中 Common Name <eg,YOUR name>[] 需要与配置文件中的ServerName一致,否则apache启动时将会报错
4)生成CA的key文件
openssl genrsa -out ca.key 1024 #完成后,会在目录CA下生成ca.key文件
5)生成CA自签署证书
openssl req -new -x509 -days 365 -key ca.key -out ca.crt #完成后,会在目录CA下生成ca.crt文件,此处填写的信息与3)步中类似。
6)生成CA的服务器签署证书
openssl ca -in server.csr -out server.crt -cert ca.crt -keyfile ca.key
#完成后,会在CA目录下生成server.crt文件。demoCA目录的最终结构如下:
7)将生成的证书复制到指定路径下
cp /etc/pki/CA/server.crt /opt/lampp/etc/ssl.crt/server.crt
cp /etc/pki/CA/server.key /opt/lampp/etc/ssl.key/server.key
8)修改配置文件 conf/extra/httpd-ssl.conf
vim conf/extra/httpd-ssl.conf
修改以下内容:
SSLCertificateFile "/opt/lampp/etc/ssl.crt/server.crt"
SSLCertificateKeyFile "/opt/lampp/etc/ssl.key/server.key"
#SSLVerifyClient require (去掉前面的#号,进行客户端验证时需要)
#SSLVerifyDepth 1 (去掉前面的#号,把10改为1,进行客户端验证时需要)
9)重新启动xampp
/opt/lampp/lampp start
10) 此时就可以通过https 访问了
注:在配置的过程中遇到的坑
1)首先就是网上的一些博客都是让取阿里云或腾讯云去申请证书,最终也没申请下来
2)在自己通过上面的方式申请下证书以后修改了配置文件以后,通过https 访问该网址并不能通过
原因是pikachu 项目导入到htdoc目录下时,测试需要直接通过 https://192.168.0.104 就可以访问web,而当时的项目是通过 https://192.168.0.104/pikachu-master 访问的,修改了http.conf 文件里的 DocumentRoot "/opt/lampp/htdocs/pikachu-maste" 和
<Directory "/opt/lampp/htdocs/pikachu-maste"> 这两处实现的,但是配置了ssl以后,要通过https访问的时候就报错了,死活访问不了,此时再将这两出处还原回去,DocumentRoot "/opt/lampp/htdocs" 和 <Directory "/opt/lampp/htdocs"> 而是通过将pikachu-master 目录下的文件放到 /opt/lampp/htdocs 这个路径下。命令如下:
cd /opt/lampp/htdocs
mv pikachu-maste/* ./ #将pikachu-maste 下的文件放到htdocs目录下。此时就可以了。