一个乐于分享的博客
关注互联网折腾服务器分享码农的日常

Nginx/Apache创建证书并启用HTTPS访问

Nginx/Apache创建证书并启用HTTPS访问

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 opensslopt-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.crtca.csrca.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
转载务必注明出处:岩兔站 » Nginx/Apache创建证书并启用HTTPS访问
赞 (0) or 打赏

讨论区 4

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址
  1. #0

    用cloudflare的自签名证书就行啦,有效期99年

    小贝6年前 (2018-12-27)回复
    • 用cloudflare前要开启nginx的https,而开启https就要随便生成个证书

      岩兔站6年前 (2018-12-27)回复
  2. #0

    之前嫌Let’s Encrypt三个月就要续期太麻烦就用了TrustAsia的证书,结果发现TrustAsia好像没什么自动续期的方法。无比后悔。

    Omega6年前 (2018-12-22)回复
    • Let’s Encrypt是挺省心的,我都没管过它

      岩兔站6年前 (2018-12-22)回复