Apache如何配置SSL
来源:互联网 发布:php微信管理平台源码 编辑:程序博客网 时间:2024/06/11 09:52
openssl如此强大,以至于不得不学学他是怎么生成的公钥私钥和证书等等,顺便也学学配置原理,:-)
首先是介绍:
Overview:
传统的网络传输方法都是传输不加密的信息,这样的话,如果有人利用网络嗅探工具很容易获取传输的信息,secure socket layer被用来解决这个问题,SSL利用非对称加密,也叫public key cryptography(PKI),整个过程会产生2个key,一个公钥一个私钥,数据被公钥加密只能由对应的私钥解密,在这里还需要一个CA(验证中心),他的作用是验证公钥的合法性,要不然我们连和谁通信都不知道。
Step1:
生成私钥
openssl genrsa -des3 -out server.key 1024
期间会让你输入密钥。我们打开server.key可以看到
全是可识别的字符,原因是本来生成的1024私钥是不可识别的,这里用我们上面输入的密钥对他进行了3-DES加密,所以生成了可识别的字符串了。
Step2
生成证书签名请求CSR(certificate signed request)
首先解释一下什么叫证书签名请求,一个证书签名请求由一个可区分的名字、一个公钥和一个可选的属性集,再加上认证请求实体对上述信息的签名共同组成。一旦一个私钥生成了,证书签名请求就可以生成了,CSR被发送到Certificate Authority,也就是CA,CA对这个CSR进行身份验证。
在生成CSR的时候,你需要提供一些个人信息,命令如下:
openssl req -new -key server.key -out server.csr
效果如下:
server.csr生成了。我们用View File打开,可以看到一些信息。如下:
说明这是一个证书请求。点开详细信息查看,
Step 3
移除私钥的加密密钥
上面我们生成的私钥,被我们用3-DES加密了,由于Apache在启动时每次都要求输入这个加密密钥,显然比较麻烦,我们移除这个密钥。移除之后私钥就是明文存储了,必须保证不能让别人获得。移除方法如下:
cp server.key server.key.orgopenssl rsa -in server.key.org -out server.key
如下图:
生成了server.key私钥文件。
Step 4
生成一个自签名文件
这里我们准备自签名,我们肯定不准备把签名发给CA签名,这种签名方法会在浏览器中报警告,生成一个365天的签名,命令如下:
openssl x509 -req -days 365 -in server.csr -signkey server.key -out server.crt
效果如下:
用server.key对server.csr签名,生成了server.crt文件。
用View File打开
证书已经弄好,然后就是部署了
Step 5
把生成的crt和key拷贝到对应位置
cp server.crt /usr/local/apache/conf/ssl.crtcp server.key /usr/local/apache/conf/ssl.keyStep 6
配置apache的default-ssl.conf文件
里面加入
SSLEngine onSSLCertificateFile /usr/local/apache/conf/ssl.crt/server.crtSSLCertificateKeyFile /usr/local/apache/conf/ssl.key/server.keySetEnvIf User-Agent ".*MSIE.*" nokeepalive ssl-unclean-shutdownCustomLog logs/ssl_request_log \ "%t %h %{SSL_PROTOCOL}x %{SSL_CIPHER}x \"%r\" %b"
apache的/etc/apache2/sites-available/000-default.conf下面增加443选项
<VirtualHost *:443>#ServerAdmin webmaster@localhostServerName 127.0.0.1:443DocumentRoot "/home/ss/workspace/www"LogLevel info ssl:warnErrorLog ${APACHE_LOG_DIR}/ssl_error.logCustomLog ${APACHE_LOG_DIR}/ssl_access.log combinedSSLEngine onSSLCertificateFile /etc/apache2/ssl.crtSSLCertificateKeyFile /etc/apache2/ssl.key<Proxy *> Order deny,allow Allow from all</Proxy><Location "/rustezemyss/web">ProxyPass "http://127.0.0.1:8080/rustezemyss/web"</Location><Location "/rustezemyss/androidphone">ProxyPass "ws://127.0.0.1:8080/rustezemyss/androidphone"ProxyPassReverse "ws://127.0.0.1:8080/rustezemyss/androidphone"</Location><Location "/webchat">ProxyPass "ws://127.0.0.1:7272"ProxyPassReverse "ws://127.0.0.1:7272"</Location></VirtualHost>
Step 7
重启apache
成功!
- Apache如何配置SSL
- 配置Apache的SSL
- Apache Ssl 配置整理
- 配置Apache支持SSL
- apache 配置 - ssl
- Apache SSL配置
- Apache服务器SSL配置
- apache 配置 ssl
- CentOS,Apache 配置SSL
- apache配置ssl
- Apache Tomcat SSL配置
- Apache服务器SSL配置
- Apache配置SSL
- Apache配置SSL
- apache配置ssl证书
- Apache配置SSL
- apache ssl 配置
- Apache SSL服务器配置
- android Fragmentd的使用
- Project Euler:Problem 72 Counting fractions
- Activity 重载方法 onStart和onResume、onPause和onStop的区别
- Mongodb备份和还原
- GPUImage开源框架使用教程
- Apache如何配置SSL
- iOS 获取设备型号,设备版本号,程序版本号
- Spring Boot使用自定义的properties
- 泊松分布和指数分布
- C# Socket编程 同步以及异步通信
- ios开发多线程GCD的学习(一)
-  Simplify Essential Complexity; Diminish Accidental Complexity
- javaScript定义函数的三种方式&变量的作用域
- 分享一段JS格式化JSON的代码