Apache 2.4 设置免费的HTTPS教程

第一步:安装Apache和mod_ssl

  • 确保你已经安装apache , 就无需运行以下的安装apache指令
yum install -y httpd
systemctl start httpd
systemctl enable httpd
  • 安装 mod_ssl
yum install -y mod_ssl

第二步:创建证书

  • 在httpd底下创建ssl目录并且进到该目录
mkdir /etc/httpd/ssl && cd /etc/httpd/ssl
  • 使用mod ssl生成证书 , 生成出cert.key和cert.csr
openssl req -new -newkey rsa:2048 -nodes -keyout cert.key -out cert.csr
  • 以上这步骤是设置创建的证书的配置,Common Name 就是你的https的域名,*.pangzai.win 这样写的话,等于说任何形式的subdomain都能支持

第三步:打开防火墙的443端口

第四步:生成免费的SSL证书

  • 跟着以上的这样选项,CSR 就是放刚刚你在服务器生成的cert.csr , 把这文件内的加密码都放在这输入框上
  • 然后接着就要求你在DNS添加TXT record,添加后按validation才能通过
  • 以上这个案例是我添加在cloudflare dns的示范
  • 最后成功生成了SSL证书!

第五步:配置SSL证书和设置Apache

  • 把以上获取的CA Certificate 存在 /etc/httpd/ssl/chain.crt
  • 把以上获取的Certificate 存在 /etc/httpd/ssl/cert.crt
  • 接着就是Apache的设置 , 打开这文件
nano /etc/httpd/conf.d/ssl.conf
  • 然后就是在这文件的底布, 添加以下的代码,是为了加载所有在 /etc/httpd/sites-https 底下的文件
IncludeOptional sites-https/*.conf
  • 接着创建 sites-https目录,并且去到该目录底下
mkdir /etc/httpd/sites-https && cd /etc/httpd/sites-https
  • 接着就自定义一个文件名和conf格式的
nano test.conf
  • 接着就是在这文件内配置你的Apache
<VirtualHost *:443>
    ServerName www.pangzai.win【你的domain或subdomain】
    DocumentRoot /var/www/html/【你的网页在服务器的目录】
    SSLEngine on
    SSLCertificateFile /etc/httpd/ssl2/cert.crt【SSL的Certificate】
    SSLCertificateKeyFile /etc/httpd/ssl2/cert.key【你所创建证书的key】
    SSLCertificateChainFile /etc/httpd/ssl2/chain.crt【SSL的CA Cert】
</VirtualHost>
  • 配置好了之后就需要刷新apache的设定
systemctl reload httpd

第六步:测试和检测SSL的状态

  • 配置好了,基本上打开了你的网站是有青色锁头了 , 我使用的是暗黑主题的macos所以看起来是黑色的,正常情况是青色的
  • 别认为有青色锁头就完事了,需要详细检查,如果你是开发app或是其他前端的OS环境对SSL的要求特别严格的话,就需要接着做详细的检测,否则将会遇到certificate untrust的问题
  • 如果看到全部青色的话,恭喜你!完全没问题了?

分享踩坑的经验

  • 因为我一开始设置Apache的时候,没有放上 SSLCertificateChainFile , 所以在Apps端在api请求的时候就遇到了certificate untrust的问题,并且在sslshopper 查到的状况如下图

Loading

Facebook评论