群晖搭建证书申请docker 群晖letsencrypt证书怎么搞
Let's Encrypt是很火的一个免费SSL证书发行项目,自动化发行证书,证书有90天的有效期。
适合个人使用或者临时使用,不用再忍受自签发证书不受浏览器信赖的提示。去年VPS侦探曾经说过Let's Encrypt的使用教程,但是Let's Encrypt已经发布了新的工具certbot,虽然是新的工具,但是生成证书的使用方法和参数是基本一致的,证书续期更简单了。但是目前看certbot在一些老版本的Linux发行版上的兼容性还是有问题的,特别是在CentOS 5上因为python版本过低是无法用的,CentOS 6上需要先安装epel才行,当然也有很多第三方的工具你也可以自己去尝试一下。
遇到问题别着急,我整理了一下我遇到的问题,会在最后一一记录。
1、下载Cerbot工具
wget https:///certbot-auto --no-check-certificate2、加权限
chmod a+x certbot-auto3、安装
./certbot-auto -n4-1、生成数字证书 -- 单域名
./certbot-auto certonly --email 526189531@ --agree-tos --no-eff-email --webroot -w /usr/local/www/qst/ -d servertest.okall.com.cn上述红字表示需要根据自己情况需要修改的数据。按顺序依次说明如下:
1、自定义邮箱,建议是真实有效的
2、web站点所在的目录
3、web站点的域名
4-2、生成数字证书 -- 多域名
./certbot-auto certonly --email 526189531@ --agree-tos --webroot -w /var/www/laozuo -d laozuo.org -d www.laozuo.org -w /var/www/laobuluo -d -d www.红字说明同上
5、证书生成完成。
出现如下图类似时,标识证书生成完成。红框中是证书的存放位置。在这目录里可以看到有cert.pem 、chain.pem 、 fullchain.pem 、privkey.pem四个文件。
cert.pem - Apache服务器端证书
chain.pem - Apache根证书和中继证书
fullchain.pem - Nginx所需要ssl_certificate文件
privkey.pem - 安全证书KEY文件
6.证书安装 -- Apache
6.1)、Apache在生成证书后也需要修改一下apache的配置文件 /usr/local/apache/conf/httpd.conf
查找httpd-ssl将前面的#去掉。 如下图:
6.2)、然后执行下面代码
Apache 2.2如下:
cat >/usr/local/apache/conf/extra/httpd-ssl.conf<<EOF Listen 443 AddType application/x-x509-ca-cert .crt AddType application/x-pkcs7-crl .crl SSLCipherSuite EECDH+CHACHA20:EECDH+CHACHA20-draft:EECDH+AES128:RSA+AES128:EECDH+AES256:RSA+AES256:EECDH+3DES:RSA+3DES:!MD5 SSLProxyCipherSuite EECDH+CHACHA20:EECDH+CHACHA20-draft:EECDH+AES128:RSA+AES128:EECDH+AES256:RSA+AES256:EECDH+3DES:RSA+3DES:!MD5 SSLHonorCipherOrder on SSLProtocol all -SSLv2 -SSLv3 SSLProxyProtocol all -SSLv2 -SSLv3 SSLPassPhraseDialog builtin SSLSessionCache "shmcb:/usr/local/apache/logs/ssl_scache(512000)" SSLSessionCacheTimeout 300 SSLMutex "file:/usr/local/apache/logs/ssl_mutex" SSLStrictSNIVHostCheck on NameVirtualHost *:443 EOFApache 2.4如下:
cat >/usr/local/apache/conf/extra/httpd-ssl.conf<<EOF Listen 443 AddType application/x-x509-ca-cert .crt AddType application/x-pkcs7-crl .crl SSLCipherSuite EECDH+CHACHA20:EECDH+CHACHA20-draft:EECDH+AES128:RSA+AES128:EECDH+AES256:RSA+AES256:EECDH+3DES:RSA+3DES:!MD5 SSLProxyCipherSuite EECDH+CHACHA20:EECDH+CHACHA20-draft:EECDH+AES128:RSA+AES128:EECDH+AES256:RSA+AES256:EECDH+3DES:RSA+3DES:!MD5 SSLHonorCipherOrder on SSLProtocol all -SSLv2 -SSLv3 SSLProxyProtocol all -SSLv2 -SSLv3 SSLPassPhraseDialog builtin SSLSessionCache "shmcb:/usr/local/apache/logs/ssl_scache(512000)" SSLSessionCacheTimeout 300 Mutex sysvsem default SSLStrictSNIVHostCheck on EOF6.3)、对应apache虚拟主机配置文件的最后</VirtualHost>下面添加上SSL部分的配置文件
注:
- 根据自己的实际情况对下面的配置进行修改
- 删除下面的所有注释
- 上一步已经声明端口了,所以此步把下面代码拷过去就可以了,不用拷贝下面删除的代码
7、重启apache服务。
8、续证
./certbot-auto renew --dry-run
下面说一下可能会遇到的问题:
1、错误:To use Certbot, packages from the EPEL repository need to be installed.
执行如下代码安装
yum install epel-release如果还为解决,执行如下代码
rpm -Uvh https://dl.fedoraproject.org/pub/epel/epel-release-latest-6.noarch.rpm如果未解决,更新源安全升级
yum upgrade ca-certificates --disablerepo=epel验证升级是否有效
yum repolist
2、错误:Invalid command 'SSLCipherSuite', perhaps misspelled or defined by a module not included in the server configuration
原因未找到相关module
执行如下代码
vim /usr/local/apache/conf/httpd.conf在配置文件中加入下图代码
LoadModule ssl_module /usr/lib64/httpd/modules/mod_ssl.s
如果找不到以此文件,用如下代码查找一下,用最新路径替换上面的路径:
find / -name 'mod_ssl.so'
如何申请 LetsEncrypt 免费 SSL/TLS 证书:详细步骤与配置指南
oneinstack如何安装ssl证书和配置Let's Encrypt免费SSL证书教程汇总(转)
Windows Server 2012新特性:证书申请加密windows2008证书服务
Windows Server 2016 证书服务器搭建(三)在windows server 2012下搭建证书服务器
Docker的三种网络代理配置:dockerd pull镜像代理;容器docker run网络代理;docker build代理--build-argdocker pull 代理
php mcrypt的安装-注意php路径php mcrypt
使用Forege与LetsEncrypt提升网站安全性的方法