SSL加密
SSL (Secure Socket Layer)
为Netscape所研发,用以保障在Internet上数据传输之安全,利用数据加密(Encryption)技术,
可确保数据在网络上之传输过程中不会被截取及窃听。
目前一般通用之规格为40 bit之安全标准,美国则已推出128 bit之更高安全
SSL协议位于TCP/IP协议与各种应用层协议之间,为数据通讯提供安全支持。
SSL协议可分为两层: SSL记录协议(SSL Record Protocol):它建立在可靠的传输协议(如TCP)之上,为高层协议提供数据封装、压缩、加密等基本功能的支持。
SSL握手协议(SSL Handshake Protocol):它建立在SSL记录协议之上,用于在实际的数据传输开始前,通讯双方进行身份认证、协商加密算法、交换加密密钥等。
SSL协议提供的服务主要有:
1)认证用户和服务器,确保数据发送到正确的客户机和服务器;
2)加密数据以防止数据中途被窃取;
3)维护数据的完整性,确保数据在传输过程中不被改变。
SSL协议的工作流程:
服务器认证阶段:1)客户端向服务器发送一个开始信息“Hello”以便开始一个新的会话连接;2)服务器根据客户的信息确定是否需要生成新的主密钥,如需要则服务器在响应客户的“Hello”信息时将包含生成主密钥所需的信息;3)客户根据收到的服务器响应信息,产生一个主密钥,并用服务器的公开密钥加密后传给服务器;4)服务器恢复该主密钥,并返回给客户一个用主密钥认证的信息,以此让客户认证服务器。
https介绍 HTTPS(Secure Hypertext Transfer Protocol)安全超文本传输协议 它是由Netscape开发并内置于其浏览器中,用于对数据进行压缩和解压操作,并返回网络上传送回的结果。HTTPS实际上应用了Netscape的完全套接字层(SSL)作为HTTP应用层的子层。(HTTPS使用端口443,而不是象HTTP那样使用端口80来和TCP/IP进行通信。)SSL使用40 位关键字作为RC4流加密算法,这对于商业信息的加密是合适的。HTTPS和SSL支持使用X.509数字认证,如果需要的话用户可以确认发送者是谁。
https是以安全为目标的HTTP通道,简单讲是HTTP的安全版。即HTTP下加入SSL层,https的安全基础是SSL,因此加密的详细内容请看SSL。
在RHEL5中自带了OpenSSL。
1,生成证书 cd /etc/httpd
[root@www httpd]# openssl genrsa -out server.key 1024
Generating RSA private key, 1024 bit long modulus
......++++++
.............................................................++++++
e is 65537 (0x10001)
2,签署密钥[
root@www httpd]# chmod 600 server.key
[root@www httpd]# openssl req -new -key server.key -out server.csr
You are about to be asked to enter information that will be incorporated
into your certificate request.
What you are about to enter is what is called a Distinguished Name or a DN.
There are quite a few fields but you can leave some blank
For some fields there will be a default value,
If you enter '.', the field will be left blank.
-----
Country Name (2 letter code) [GB]:CN
State or Province Name (full name) [Berkshire]:China
Locality Name (eg, city) [Newbury]:Shanghai
Organization Name (eg, company) [My Company Ltd]:linuxdify
Organizational Unit Name (eg, section) []:linuxdify
Common Name (eg, your name or your server's hostname) []:www.linuxdify.com
Email Address []:root@linuxdify.com
Please enter the following 'extra' attributes
to be sent with your certificate request
A challenge password []:1234
An optional company name []:1234
3,定义有效期
[root@www httpd]# openssl x509 -req -days 365 -in server.csr -signkey server.key -out server.crt
Signature ok
subject=/C=CN/ST=China/L=Shanghai/O=linuxdify/OU=linuxdify/CN=www.linuxdify.com/emailAddress=root@linuxdify.com
Getting Private key
4,调用SSL
查看httpd/conf.d目录下有没有ssl.conf 如果没有就要装mod_ssl (我是用yum install mod_ssl)。
#vi /etc/httpd/conf.d/ssl.conf
SSLCertificateFile /etc/httpd/server.crt
SSLCertificateKeyFile /etc/httpd/server.key
# General setup for the virtual host, inherited from global configuration
#DocumentRoot "/var/www/html"
#ServerName www.example.com:443
DocumentRoot "/var/www/html/www.linuxdify.com"
ServerName www.linuxdify.com:443
重启httpd服务。
我打开浏览器输入 https://www.linuxdify.com
提示:
www.linuxdify.com uses an invalid security certificate.
The certificate is not trusted because it is self signed.
(Error code: sec_error_untrusted_issuer)
这个时候,就要获取一下证书,在浏览器上有提示。
qtsmy 于 2009-12-21 18:28:14发表:
路过
xiazhouquan 于 2009-12-21 17:46:26发表:
学习了,加油啊,楼主