web安全实践实验SSLWord文件下载.docx
《web安全实践实验SSLWord文件下载.docx》由会员分享,可在线阅读,更多相关《web安全实践实验SSLWord文件下载.docx(23页珍藏版)》请在冰点文库上搜索。
![web安全实践实验SSLWord文件下载.docx](https://file1.bingdoc.com/fileroot1/2023-5/2/6b5df075-eb4d-4bcf-b65e-c2a6548db7fa/6b5df075-eb4d-4bcf-b65e-c2a6548db7fa1.gif)
首先新建一个快照。
(以防万一o(╯□╰)o)
1>
配置Apache服务器
默认站点在/var/www/
配置文件在/etc/apache2/
日志在/var/log/apache/
启动脚本是/usr/sin/apache2ctl或者/etc/init.d/apache2
1.安装Apache
$sudoapt-getinstallapache2
本地站点已经可以打开
此时打开的是默认default站点。
下面新建一个站点。
创建一个默认配置文件的拷贝:
$sudocp/etc/apache2/sites-available/default/etc/apache2/sites-available/test
我们的站点假设叫test
查看Apache2的配置文件,确保如下配置存在:
DocumentRoot/var/www
编辑我们刚刚建立的配置文件
建立我们的文件夹保存我们网站的文件
/var/www./test
通过以下命令激活我们的第二个网站
$a2ensitetest
在我们的目录下创建index.html
重启Apache服务器
2>
添加SSL支持
ssl协议默认是在webserver的443端口监听,所以,访问ssl会产生如下形式的访问:
http:
//ip:
443/
这样将与http:
port/里的port冲突。
因此我们采用默认的default
将系统恢复成
一些Ubuntu包依赖于安装OpenSSL,但如果你希望初始化安装OpenSSL和库文件,在终端提示符下使用以下apt-get命令:
$sudoapt-getinstallopenssl
首先,确保apache2的ssl模块已经加载:
$sudoa2enmodssl
创建初始工作环境
$cd&
&
mkdir-pmyCA/signedcerts&
mkdirmyCA/private&
cdmyCA
创建并进入myCA,同时生成两个子目录signedcerts和private
myCA用于存放CA证书,证书数据库,生成的证书,密钥以及请求
signedcerts:
保存签名证书的copy
private:
包含私钥
在myCA中创建证书库:
$echo'
01'
>
serial&
touchindex.txt
然后创建f文件。
$sudonano~/myCA/f
内容如下:
#Mysampleffile.
#
#Defaultconfigurationtousewhenoneisnotprovidedonthecommandline.
[ca]
default_ca=local_ca
#Defaultlocationofdirectoriesandfilesneededtogeneratecertificates.
[local_ca]
dir=/home/paulcony/myCA
certificate=$dir/cacert.pem
database=$dir/index.txt
new_certs_dir=$dir/signedcerts
private_key=$dir/private/cakey.pem
serial=$dir/serial
#Defaultexpirationandencryptionpoliciesforcertificates.
default_crl_days=365
default_days=1825
default_md=md5
policy=local_ca_policy
x509_extensions=local_ca_extensions
#Defaultpolicytousewhengeneratingservercertificates.Thefollowing
#fieldsmustbedefinedintheservercertificate.
[local_ca_policy]
commonName=supplied
stateOrProvinceName=supplied
countryName=supplied
emailAddress=supplied
organizationName=supplied
organizationalUnitName=supplied
#x509extensionstousewhengeneratingservercertificates.
[local_ca_extensions]
subjectAltName=DNS:
basicConstraints=CA:
false
nsCertType=server
#Thedefaultrootcertificategenerationpolicy.
[req]
default_bits=2048
default_keyfile=/home/paulcony/myCA/private/cakey.pem
prompt=no
distinguished_name=root_ca_distinguished_name
x509_extensions=root_ca_extensions
#RootCertificateAuthoritydistinguishedname.Changethesefieldstomatch
#yourlocalenvironment!
[root_ca_distinguished_name]
commonName=MyOwnRootCertificateAuthority
stateOrProvinceName=NC
countryName=US
emailAddress=**********************
organizationName=TradeShowHell
organizationalUnitName=ITDepartment
[root_ca_extensions]
true
生成CA根证书和密钥
$exportOPENSSL_CONF=~/myCA/f
该命令用于给环境变量OPENSSL_CONF赋值为f。
然后,生成CA证书和密钥
$opensslreq-x509-newkeyrsa:
2048-outcacert.pem-outformPEM-days1825
以上步骤生成了自签名的证书,和RSA公/私密钥对。
证书的格式是PEM,有效期是1825天。
/myCA/cacert.pem:
CA公开证书
/myCA/private/cakey.pem:
CA私钥
配置CA后,便可以对证书进行自签名。
首先,你可能希望用密码短语加密证书的私钥。
加密后,即使证书失窃,也可以有效保护。
使用SSL的应用启动后,必须要输入密码短语后才能使用证书。
问题是,如果该服务处于无人监管的情况下,譬如当电脑重启,如果没人输入密码短语,那么webserver无法使用。
折中方法是:
私钥可以被解密,这样服务可以自动启动。
实际生成自签名的证书,使用以下步骤:
生成服务器配置文件
配置文件准备好之后,使用如下命令生成服务器证书:
该命令设置环境变量OPENSSL_CONF,使得openssl更换配置文件。
然后生成证书和密钥:
$opensslreq-newkeyrsa:
1024-keyouttempkey.pem-keyformPEM-outtempreq.pem-outformPEM
同样的,需要输入密码短语。
然后,需要将临时私钥转换为unencryptedkey。
命令如下:
$opensslrsa<
tempkey.pem>
server_key.pem
需要输入密码短语。
现在,需要使用CAkey对服务器证书签名:
$opensslca-intempreq.pem-outserver_crt.pem
删除临时证书和密码文件。
$rm-ftempkey.pem&
rm-ftempreq.pem
现在,自签名的服务应用证书和密钥对便产生了:
1.server_crt.pem:
服务应用证书文件
2.server_key.pem:
服务应用密钥文件
X.509证书转换用户版本PKCS#12
如果需要从服务器的根CAX.509生成用户使用的PKCS#12,使用以下步骤:
下面命令生成包含证书和密钥对的文件:
$opensslreq-x509-nodes-days365-newkeyrsa:
1024-keyoutmycert.pem-outmycert.pem
然后,下面的命令将该文件生成PKCS#12:
$opensslpkcs12-export-outmycert.pfx-inmycert.pem-name"
Certificateforwhatever"
会提示输入密码,可以不输。
生成的mycert.pfx文件可以被诸如浏览器、E-mail客户端的应用程序导入,因为这个证书代表了服务器的根CA证书,所有由该CA证书前面的服务器级证书都会被安装了证书PKCS#12版本的客户应用接受。
将证书导入Firefox
在MozillaFirefox中导入证书:
1.FirefoxEdit->
preference
2.点击Advanced
3.点击ViewCertificate
4.点击Import
5.找到certificate文件所在位置,.pfx文件
6.选中pfx文件,点击open
7.可能提示输入firefox的主密码,或者当场生成一个;
点击OK
8.提示输入证书的输出密码,如果没有与证书相关的密码,点击OK;
否则输入,点击OK
9.出现成功信息;
10.点击OK
11.成功地导入了PKCS#12证书。
安装证书
sudocpserver_crt.pem/etc/ssl/certs
sudocpserver_key.pem/etc/ssl/private
$sudonano/etc/apache2/sites-available/default-ssl
SSLCertificateFile/etc/ssl/certs/server_crt.pem
SSLCertificateKeyFile/etc/ssl/private/server_key.pem
OpenSSL配置完成