1、安装
curl https://get.acme.sh | sh
安装程序将执行3个操作:
- 创建和复制
acme.sh
到你的主目录($HOME
)~/.acme.sh/
。所有证书也将放置在此文件夹中。 - 为创建别名
acme.sh=~/.acme.sh/acme.sh
。 命令:alias acme.sh=~/.acme.sh/acme.sh - 如果需要,创建每日cron作业以检查并更新证书。
2、生成证书
本文选择apache模式
此apache模式仅用于颁发证书,不会更改您的apache配置文件。您将需要配置您的网站配置文件以自己使用证书。我们不想弄乱您的apache服务器,不用担心
acme.sh --issue --apache -d example.com -d www.example.com
3、将证书安装到apache
acme.sh --install-cert -d example.com \
--cert-file /etc/httpd/ssl/example.com.cer \
--key-file /etc/httpd/ssl/example.com.key \
--fullchain-file /etc/httpd/ssl/fullchain.cer \
--reloadcmd "service httpd force-reload"
输出Reload success 即成功
4、配置apache
在httpd.conf文件中找到以下参数并进行配置。
#LoadModule ssl_module modules/mod_ssl.so #删除行首的配置语句注释符号“#”加载mod_ssl.so模块启用SSL服务
如果httpd.conf没有#LoadModule ssl_module modules/mod_ssl.so 执行下面操作
安装mod_ssl.so模块
yum -y install mod_ssl
2.命令执行结束安装完成后 /etc/httpd/conf.d 目录下会出现一个ssl.conf文件
在这个文件里面找到如下内容进行更改
SSLCertificateFile xxx_public.crt
SSLCertificateKeyFile xxx.key
SSLCertificateChainFile xxx_chain.crt 找到上面的三个内容并将后面的文件路径替换为你自己的文件路径
然后继续在此文件中配置找到以下内容配置443站点信息
DocumentRoot "/home/test/file/" #(引号里面是你的项目的路径)
ServerName xxxxx (这里的xxxxx是你的域名)
<Directory "/home/test/file/"> #(引号里面是你的项目的路径,其他的直接复制过去即可)
Options FollowSymLinks ExecCGI
AllowOverride All
Order allow,deny
Allow from all
Require all granted
</Directory>
打开httpd.conf
#Include conf/extra/httpd-ssl.conf #删除行首的配置语句注释符号“#”。
引入文件
配置完成,重启Apache然后访问你的域名就好了
5、问题
--注意 - 前面手动加上https
--外网无法访问 - 在服务器安全组开端口443
--Apache – 无效命令’SSLMutex’ SSLMutex在2.2之后被删除 用SSL替换SSLMutex - Mutex default
--Apache 报错: couldn't perform authentication. AuthType not set!: / - Require all granted” 指令只能用于 Apache 2.4。
只需要将 Require all granted 替换为如下内容即可:
Order allow,deny
Allow from all