Apache Https配置
安装Apache2
sudo apt-get update
sudo apt-get install apache2
- 测试,访问http://localhost/
- 查看Apache Service启动状态(包含启动错误信息)
service apache2 status
- 问题:Apache默认采用80端口。如果该端口已被占用,会导致Apache启动失败。出现该问题时,修改端口即可。
cd /etc/apache2/
vim ports.conf
Listen 8026
CA创建
- 证书:证书是用来确保通信安全的机制。打个比方,认证机构就是国家,网站就是人,证书就是身份证。由国家,给你身份证后,你就是这个国家的合法公民了。
- CA(证书颁发机构):申请证书的机构,一般申请证书都是需要一定得费用。为了测试方便,这里我们自己做一个CA,把自己当成CA去签发证书。
openssl genrsa -aes256 -out ca.key.pem 2048
openssl req -new -key ca.key.pem -out ca.csr
-subj "/C=CN/ST=SZ/L=SZ/O=kyfxbl/OU=linduotest/CN=*.linduotest.net"
openssl x509 -req -days 3650 -sha1 -extensions v3_ca -signkey ca.key.pem -in ca.csr -out ca.cer
- 获得了ca.key.pem和ca.cer后,我们就可以去签发证书了。
Server证书
- Server证书,就是https网站的证书了。
- 相对的,client端也可以有证书。https双向验证时,需要client端将证书发给service。
- 这里,我们只需要https单向验证即可。
openssl genrsa -aes256 -out server.key.pem 2048
openssl req -new \
-sha256 \
-key server.key.pem \
-subj "/C=CN/ST=SZ/L=SZ/O=kyfxbl/OU=kyfxbl/CN=www.linduotest.net" \
-reqexts SAN \
-config <(cat /etc/ssl/openssl.cnf \
<(printf "[SAN]\nsubjectAltName=DNS:*.linduotest.net")) \
-out server.csr
openssl ca -in server.csr \
-md sha256 \
-keyfile ca.key.pem \
-cert ca.cer \
-extensions SAN \
-config <(cat /etc/ssl/openssl.cnf \
<(printf "[SAN]\nsubjectAltName=DNS:*.linduotest.net")) \
-out server.crt
配置Apache Https
sudo a2enmod ssl
sudo a2ensite default-ssl
cd /etc/apache2/
vim ports.conf
Listen 80 443
cd /etc/apache2/sites-available
vim default-ssl.conf
ServerName www.linduotest.net:443
SSLCertificateFile /home/linduo/Work/apacheSSL/server.crt
SSLCertificateKeyFile /home/linduo/Work/apacheSSL/server.key.pem
sudo a2enmod rewrite
sudo /etc/init.d/apache2 restart
测试https
vim /etc/hosts
linduo的ip www.linduotest.net
C:\Windows\System32\drivers\etc\hosts
- IP方式,直接输入https://服务器IP即可
- 证书添加方式(HTTPS或浏览器开发者,并且通过自己的证书验证https。如果不是这种情况,请不要考虑该方式。一般来讲,市场上的浏览器不会让你将非官方的证书导入的。)将ca.cer证书中的内容,全部追加到验证HTTPS时,使用的证书中即可。