1.SSL所使用的证书可以是自己建的生成的,也可以通过一个商业性CA如Verisign 或 Thawte签署证书。 2.证书的概念:首先要有一个根证书,然后用根证书来签发服务器证书和客户证书,一般理 解:服务器证书和客户证书是平级关系。在SSL必须安装根证书和服务器证书来认证。 因此:在此环境中,至少必须有三个证书:即根证书,服务器证书,客户端证书在生成证书 之前,一般会有一个私钥,同时用私钥生成证书请求,再利用证书服务器的根证来签发证书。 3.签发证书的问题:我最近找了很多关于openssl的资料,基本上只生成了根证书和私钥及 服务器证书请求,并没有真正的实现签证。我这里参考了一些资料,用openssl自带的一个 CA.sh来签证书,而不是用mod_ssl里的sign.sh来签。 在openssl下有一个CA.sh文件,就是利用此文件来签证,来签三张证书,然后利用这三张证 书来布SSL服务器。 制作证书过程如下: 1.在笔者的BT4 系统中将user/ssl/misc下的CA.sh文件copy至任意你需要生成证书的方便 的目录,笔者直接放在root目录下root@bt:~# cp /usr/ssl/misc/CA.sh CA.sh 2.运行CA.sh -newca,他会找你要CA需要的一个CA自己的私有密钥密码文件。如果没有这个 文件?按回车会自动创建,输入密码来保护这个密码文件。之后会要你的一个公司信息来做 CA.crt 文件。最后在当前目录下多了一个 ./demoCA 这样的目 录../demoCA/private/cakey.pem就是CA的key文件啦,./demoCA/cacert.pem就是CA的crt 文件了root@bt:~# ./CA.sh –newca 要求输入如下信息: Country Name (2 letter code) [AU]:CN State or Province Name (full name) [Some-State]:beijing Locality Name (eg, city) []:beijing Organization Name (eg, company) [Internet Widgits Pty Ltd]:beijing Organizational Unit Name (eg, section) []:beijing Common Name (eg, YOUR name) []:beijing Email Address []:jybase@126.com 这样就建好了一个CA服务器,有了一个根证书的私钥cakey.pem及一张根证书cacert.pem, 现在就可以用cacert.pem来给签证了 1.签署服务器证书 生成服务器私钥: root@bt:~# openssl genrsa -des3 -out server.key 1024 生成服务器私钥 server.key 生成服务器证书请求 root@bt:~# openssl req -new -key server.key -out server.csr 生成服务器证书请求 server.csr 会要求输入信息 Country Name (2 letter code) [AU]:CN State or Province Name (full name) [Some-State]:beijing Locality Name (eg, city) []:beijing Organization Name (eg, company) [Internet Widgits Pty Ltd]:beijing Organizational Unit Name (eg, section) []:beijing Common Name (eg, YOUR name) []:beijing Email Address []:beijing@126.com Please enter the following 'extra' attributes to be sent with your certificate request A challenge password []: An optional company name []: 最后把 server.crt文件mv成 newreq.pem,然后用CA.sh来签证就可以了 root@bt:~# mv server.csr newreq.pem root@bt:~# ./CA.sh -sign 这样就生成了server的证书newcert.pem 把newcert.pem改名成server.crt root@bt:~# mv newcert.pem server.crt 1.这时就有了二张证书和二个私钥,一个是demoCA下的根证书cacert.pem,当前目录下的 servr.crt,及demoCA/private下的cakey.pem,当前目录下的server.key 。 root@bt:~# mv demoCA/cacert cacert.pem 2.对server.key解密,如果将当前证书与key文件放在 C:\Apache\conf\ssl.crt\ 目录下, Apache仍然无法启动报错,是因为Windows不支持该类加密。解密server.key root@bt:~# openssl rsa -in server.key -out server.key 此时将三个文件:当前目录下的servr.crt、server.key以及demoCA/下的cacert.pem, 放到服务器的C:\Apache\conf\ssl.crt\目录下,重启Apache。 测试https:127.0.0.1访问. 可以正常访问,当前服务器搭建完毕。 攻击测试 进入工具thc-ssl-dos-1.4-win-bin的目录,开始攻击测试输入如下指令(我给服务器 设定ip地址为:192.168.100.124): 我们默认是443端口所以不用加端口设置。回车开始攻击测试。 此时只需要一台PC就可以实现对虚拟机服务器的不断请求消耗服务器的资源,我们截图 |