使用Apache的getssl进行https服务器的构建

使用Apache的getssl工具来构建https服务器。

这篇笔记是关于如何使用Apache和getssl搭建使用Let’s Encrypt的https服务器的个人备忘录。

获取getssl的配置

获取getssl

请从下方获取脚本。

根据维基百科的解释,使用curl。

$ curl --silent https://raw.githubusercontent.com/srvrco/getssl/master/getssl > getssl

取得后,可以通过以下方式赋予执行权限。

$ chmod 700 getssl

创建配置文件

可以使用getssl的-c选项来创建配置文件的模板。

$ ./getssl -c yourdomain.com

你可以在”yourdomain.com”的地方填上你想要使用的域名。
你可以使用”getssl -h”或者”–help”来查看帮助信息。

添加自己的设置。

根据需要,在创建的配置文件($HOME/.getssl/yourdomain.com/getssl.cfg)中添加设置。即使没有配置,也会有一些默认设置,但是需要根据环境更改ACL和ACCOUNT_EMAIL等设置(似乎可以不设置ACCOUNT_EMAIL而正常运行)。

ACL=('/var/local/web/.well-known/acme-challenge')
ACCOUNT_EMAIL="me@example.com"

取得或更新SSL证书

当设置完成后,按照以下方式执行。

$ ./getssl yourdomain.com

如果能够正常执行,将在“$HOME/.getssl/yourdomain.com/”目录下获取服务器证书、CA证书、私钥等。
使用上述命令可以获取和更新SSL证书。
(建议根据需要指定选项,如-q等)。

Apache配置

Apache在默认情况下没有包含SSL模块,所以需要添加该模块。
另外,由于没有使用SSL的配置文件,因此需要添加相应的导入配置。

LoadModule ssl_module modules/mod_ssl.so

Include conf/extra/httpd-ssl.conf

设定文件目录、服务器名称等个人设置,还需设定使用getssl获取的服务器证书、中间证书、域名私钥等。

<VirtualHost _default_:443>
DocumentRoot "/var/local/web"
ServerName yourdomain.com:443
ServerAdmin you@yourdomain.com

SSLCertificateFile "/root/.getssl/yourdomain.com/yourdomain.com.crt"
SSLCertificateKeyFile "/root/.getssl/yourdomain.com/yourdomain.com.key"
SSLCertificateChainFile "/root/.getssl/yourdomain.com/chain.crt"
</VirtualHost>  

未记录的参数保持默认状态。

请看这里
请参考这个
这是个参考
这个可以作为参考
鉴于这一点

https://github.com/srvrco/getssl/wiki