制作属于你的HTTPS协议(ubuntu版)

0x00 导言

身为一个学习的信息安全的菜鸟,就算水平很低,但是该有的排面咱不能少,自己搭的网站咱们也得用https协议,下面开始操作。
0x01 准备

openssl这里我是用的kali虚拟机下自带的方便,如果用的不习惯请自行下载window版

Ubuntu虚拟机下已经安装好的apache环境.
0x02 制作证书

先用openssl生成自己的cer,pem文件,但是仅可用于自己不能发布到公网上,当然如果你有钞能力,你也可以去找认证机构认证。

下面开始生成证书

1.创建密钥

使用openssl工具生成一个RSA私钥

openssl genrsa -des3 -out server.key 2048

在这里插入图片描述

这里要注意一下生成私钥,需要提供一个至少4位,最多1023位的密码。方便起见,我在这里设置为12345

2.生成CSR(证书签名请求)

openssl req -new -key server.key -out server.csr

说明:需要依次输入国家,地区,城市,组织,组织单位,Common Name和Email。其中Common Name,可以写自己的名字或者域名,如果要支持https,Common Name最好于apache环境下的ServerAdmin(具体是什么可以去etc/apache2/sites-enabled/000-default.conf文件中查看,我这里是webmaster)保持一致,否则会引起浏览器警告。
在这里插入图片描述

3.删除密钥中的密码

openssl rsa -in server.key -out server.key

说明:如果不想用一次输一次密码的话,最好把密码删了。

4.生成自签名证书

内部或者测试使用,只要忽略证书提醒就可以了。

openssl x509 -req -days 365 -in server.csr -signkey server.key -out server.crt

这里通过调整参数可以对生成的自签名证书进行调整

5.生成pem格式的公钥

在ubuntu中需要pem格式的证书才能加载,所以可以用下面的命令来生成:

openssl x509 -in server.crt -out server.pem -outform PEM

6.完成上述操作后就可以在kali的home文件夹下看到生成的自签名证书
在这里插入图片描述

7.将证书都拉进ubuntu环境中,前提是你的VM中安装了VMtools
在这里插入图片描述

ok,恭喜你你已经完成一半工作了
0x03 配置环境

配置Apache

1、开启SSL模块

sudo a2enmod ssl

在这里插入图片描述

2、启用SSL站点

sudo a2ensite default-ssl

在这里插入图片描述

3、加入监听端口

sudo gedit /etc/apache2/ports.conf             (如果没有gedit可以用vi,vim)

#编辑Apache端口配置,监听443端口(HTTPS采用的443端口传输数据)

Listen 443                      (注意又的apache版本已经设定好就不用再添加了会造成端口占用)

在这里插入图片描述

4.设置site-enabled

上文安装完后,会在/etc/apache2/sites-available/目录下生成一个缺省的default-ssl文件。缺省的网页目录仍然是/var/www/。我们可以创建一个链接到site-enabled目录,方便之后操作。

ln -s /etc/apache2/sites-available/default-ssl /etc/apache2/sites-enabled/001-ssl

这样就就会在sites-enabled目录下生成以一个001-ssl文件
在这里插入图片描述

5.存放证书

在/etc/apache2下创建一个ssl文件夹用于存放证书

在这里插入图片描述

6.修改HTTP的配置文件

确定HTTP监听端口为80

#sudo gedit /etc/apache2/sites-enabled/000-default.conf

在这里插入图片描述

7.修改HTTPS的配置文件

把端口改为443,在下加入SSL认证配置,其它的根据需要自己定制 与普通配置无异:

#sudo gedit /etc/apache2/sites-enabled/001-ssl
(注意这里有时是不能用gedit的可以用vi修改)

NameVirtualHost *:443


<VirtualHost *:443>

SSLEngine on

SSLCertificateFile /etc/apache2/ssl/server.pem      #在这里指定pem证书的路径

ServerAdmin webmaster@localhost

DocumentRoot /var/www     #这里指向你网站的目录

ServerName myServerName

<Directory />

Options FollowSymLinks

AllowOverride All

</Directory>

<Directory /var/www/>

Options FollowSymLinks MultiViews

AllowOverride None

Order allow,deny

allow from all

# This directive allows us to have apache2's defaultstart page

# in /apache2-default/, but still have / go to the right place

#RedirectMatch ^/$ /apache2-default/

</Directory>

在这里插入图片描述

到这里,你的工作已经基本完成,你离成功只有一步之遥
0x04 重启apache服务

根目录下执行

# sudo /etc/init.d/apache2 restart

很难受的是我第一次尝试提示重启失败

AH00558: apache2: Could not reliably determine the server's fully

qualified domain name, using 127.0.1.1. Set the 'ServerName' directive

globally to suppress this message。

报了一个这样的错,难受的一批!
在这里插入图片描述

但是查过资料后找到解决办法在/etc/apache2/apache2.conf文件

最后加一句:

 ServerName localhost:80

great!问题解决!apache重启成功!

在这里插入图片描述

0x05 成功样品展示
在这里插入图片描述

瞬间感觉有排面了,有木有!
0x06 结束语

博客内容仅供学习,交流使用,如有问题请及时指正。

猜你喜欢

转载自blog.csdn.net/weixin_43553654/article/details/105795848