Nginxt和Apache应该是目前应用最广的Web服务器了,而随着Chrome将http网站标记为“不安全”,就目前形势看来,启用HTTPS已经是必备技能了。
网上启用HTTPS的教程很多,岩兔站找了好多才搞清楚,所以自己总结一下,免得再用的时候忘记了。
申请证书
需要开户https访问,申请证书是必不可少的,证书又有收费免费之分,玩网站的搞个免费证书就行,岩兔站使用的就是Let’s Encrypt免费证书。
关于Let’s Encrypt申请,可以参考:https://github.com/Neilpang/acme.sh,免费申请还能自动续期!
比较小白一点的方法就是使用各种平台,各种面板等也能自动申请到证书,岩兔站用的就是lnmp.org提供的一键脚本自动创建网站,申请证书的。
自建证书
既然申请免费证书那么方便,为什么还要自己创建?
比如国外网速比较渣的主机,可以通过CloudFlare的CDN进行加速,而CloudFlare本身附带免费证书,所以创建本地网站的时候使用自己建的证书就可以,自已建证书可以无限有效期,方便省心。
开始之前确保主机上装有openssl
,如果提示命令找不到,使用yum install openssl
或opt-get install openssl
进行安装。
生成证书命令只有3行
# Generate CA private key
openssl genrsa -out ca.key 2048
# Generate CSR
openssl req -new -key ca.key -out ca.csr
# Generate Self Signed certificate(CA 根证书)
openssl x509 -req -days 3650 -in ca.csr -signkey ca.key -out ca.crt
生成的证书包括3个文件:ca.crt
,ca.csr
,ca.key
配置Nginx
新建或修改vhost
vim /usr/local/nginx/conf/vhost/yantuz.cn.conf #增加以下内容: server{ listen 443 ssl http2; #listen [::]:443 ssl http2; server_name yantuz.cn; index index.html index.htm index.php default.html default.htm default.php; root /home/wwwroot/yantuz.cn; ssl on; ssl_certificate /root/ca/ca.crt; ssl_certificate_key /root/ca/ca.key; }
重启服务
service nginx restart
配置Apache
首先启用httpd.conf
中的mod_ssl.so
,增加一行配置:
vim /etc/httpd/conf/httpd.conf #增加以下行,或取消本行前注释 LoadModule ssl_module modules/mod_ssl.so
如果mod_ssl.so
不存在,则需要进行安装
#CentOS yum install mod_ssl #Ubuntu Debian opt-get install mod_ssl
最后增加虚拟主机配置
<VirtualHost yantuz.cn:443> SSLEngine on DocumentRoot "/home/wwwroot/yantuz.cn" ServerName yantuz.cn:443 SSLCertificateFile /root/ca/ca.crt SSLCertificateKeyFile /root/ca/ca.key </VirtualHost>
重启服务
service httpd restart
用cloudflare的自签名证书就行啦,有效期99年
用cloudflare前要开启nginx的https,而开启https就要随便生成个证书
之前嫌Let’s Encrypt三个月就要续期太麻烦就用了TrustAsia的证书,结果发现TrustAsia好像没什么自动续期的方法。无比后悔。
Let’s Encrypt是挺省心的,我都没管过它