On a Linux system running Lighttpd, how can I automate certificate renewal for Let\xe2\x80\x99s Encrypt certs. Let\xe2\x80\x99s Encrypt provides great scripts for Apache 2 and NGINX but not Lighttpd which is much more comfortable for small systems like Raspberry Pi or old boxes.
\n我在这里读书
如果我验证安全性
https://www.ssllabs.com/ssltest/analyze.html
我的一个使用certbot 的网站因此被评为 B
有解决办法吗?
certbot 基本上是许多系统的https://letsencrypt.org/的实现。
我是网络服务器领域的新手,我不希望我的网站仅提供 https 服务(对于 IPV4 和 IPV6),因此我实施了以下步骤,
sudo certbot --nginx certonly -d maarath.com -d www.maarath.com
4.在etc/nginx/site-available/main中手动配置我的站点配置文件,如下所示,
server {
listen 80 ;
listen [::]:80 ;
root /var/www/main/;
index index.php index.html index.htm;
# Make site accessible from http://localhost/
server_name maarath.com www.maarath.com;
location / {
try_files $uri $uri/ =404;
}
# HTTPS
listen 443 ssl;
server_name maarath.com www.maarath.com;
ssl_certificate /etc/letsencrypt/live/maarath.com/cert.pem;
ssl_certificate_key /etc/letsencrypt/live/maarath.com/privkey.pem;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
ssl_ciphers HIGH:!aNULL:!MD5;
location ~ \.php$ {
try_files $uri =404;
fastcgi_split_path_info ^(.+\.php)(/.+)$; …Run Code Online (Sandbox Code Playgroud) 根据Ubuntu 16.04和其他发行版的 Certbot 文档,据说软件包中安装了一个 cron 作业,可以自动更新证书:
您系统上的 Certbot软件包附带一个 cron 作业,该作业将在证书过期之前自动更新您的证书。由于 Let's Encrypt 证书的有效期为 90 天,因此强烈建议利用此功能。
但是,我找不到有关此主题的任何相关文档,并且在按照同一页面(版本 0.19.0)上的 certbot 安装说明进行操作后,我找不到在 crontab 上配置的任何 cron 作业。这个功能真的存在吗?如果是,如何找到并配置它?
注意:我在尝试使用钩子配置自动续订时发现了这篇文档。我可以手动配置 cron 作业,但使用内置的自动更新功能似乎更合适。
是否可以在 Traefik 中使用现有的 LetsEncrypt 证书(.pem 格式)?
我已将 Traefik/Docker 设置为生成 acme.json - 我可以为一组域导入现有证书吗?
这是 github 上以下问题的后续:
https://github.com/certbot/certbot/issues/1820
和
https://github.com/certbot/certbot/issues/2546
Letsencrypt无法处理apache的WSGI配置
我正在使用以下配置运行 apache2
<VirtualHost *:80>
# The ServerName directive sets the request scheme, hostname and port that
# the server uses to identify itself. This is used when creating
# redirection URLs. In the context of virtual hosts, the ServerName
# specifies what hostname must appear in the request's Host: header to
# match this virtual host. For the default virtual host (this file) this
# value is not decisive as it is used …Run Code Online (Sandbox Code Playgroud) 我正在尝试让 Let's Encrypt 与 GKE 上的 cert-manager 一起使用。我遵循了以下程序:
kubectl apply -f https://raw.githubusercontent.com/jetstack/cert-manager/release-0.7/deploy/manifests/00-crds.yaml
Run Code Online (Sandbox Code Playgroud)
kubectl create namespace cert-manager
Run Code Online (Sandbox Code Playgroud)
kubectl label namespace cert-manager certmanager.k8s.io/disable-validation=true
Run Code Online (Sandbox Code Playgroud)
helm repo add jetstack https://charts.jetstack.io
Run Code Online (Sandbox Code Playgroud)
helm repo update
Run Code Online (Sandbox Code Playgroud)
helm install \
--name cert-manager \
--namespace cert-manager \
--version v0.7.0 \
jetstack/cert-manager
Run Code Online (Sandbox Code Playgroud)
这导致(在 cert-manager 命名空间中)
kubectl -n cert-manager get all
NAME READY STATUS
RESTARTS AGE
pod/cert-manager-6d8fc95f98-57c55 1/1 Running 0 26m …Run Code Online (Sandbox Code Playgroud) ssl google-kubernetes-engine lets-encrypt cert-manager nginx-ingress
我正在构建一个网络应用程序(例如:)www.mywebapp.example,允许用户将他们的域 - www.xyz.example- 指向www.mywebapp.example. 当用户转到 时www.xyz.example,他们的内容将从中提供www.mywebapp.example。用户将被告知如何更新他们的@和www A records在他们的域提供商中的 DNS 设置以连接www.xyz.example到www.mywebapp.example.
我可以./certbot-auto -d <domain-name>为每个域手动创建新的 SSL 证书。我还设置了一个 cron 作业来测试更新。
但是,我想通过运行从 JavaScript 函数触发的 PHP 脚本来自动执行此过程,每次用户将其域连接到www.mywebapp.example. 我的问题是:
我应该./certbot-auto使用命令从 PHP执行exec()/shell_exec()命令吗?我应该编写一个单独的 bash 脚本并运行 bash 脚本吗?
我应该使用 LetsEncrypt 推荐的 ACME PHP 库吗? https://letsencrypt.org/docs/client-options/
我手动为域创建了一个新的 SSL 证书www.xyz2.example,该证书成功指向www.mywebapp.example. 但是,这破坏了对所有现有域的 SSL 支持 - *.mywebapp.example, mywebapp.example, www.xyz.example. 我是否需要为指向的每个域创建虚拟主机www.mywebapp.example? …
使用很棒的库 acme4j,我创建了 3 个文件。
我遇到的问题是,当我将它们转换为 keystore.p12 时,我无法让 Spring Boot 使用它。我使用以下命令创建了 keystore.p12 文件:
openssl pkcs12 -export -out keystore.p12 -inkey domain.key -in domain-chain.crt
Run Code Online (Sandbox Code Playgroud)
配置是这样设置的
server:
port: 9443
ssl:
key-store: keystore.p12
key-password: secret
key-store-type: PKCS12
Run Code Online (Sandbox Code Playgroud)
但是,如果我尝试击中终点,我就会javax.net.ssl.SSLHandshakeException: no cipher suites in common被抛出。
这似乎是一个相对常见的问题,一个建议是按照https://docs.oracle.com/javase/7/docs/technotes/guides/security/jsse/ReadDebug.html启用调试
所以,这样做并再次击中终点我可以看到
javax.net.ssl|DEBUG|2B|reactor-http-epoll-2|2019-05-03 07:47:10.917 NZST|HandshakeContext.java:294|Ignore unsupported cipher suite: TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384 for TLS11
javax.net.ssl|DEBUG|2B|reactor-http-epoll-2|2019-05-03 07:47:10.917 NZST|HandshakeContext.java:294|Ignore unsupported cipher suite: TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256 for TLS11
javax.net.ssl|DEBUG|2B|reactor-http-epoll-2|2019-05-03 07:47:10.917 NZST|HandshakeContext.java:294|Ignore unsupported cipher suite: TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 for TLS11
javax.net.ssl|DEBUG|2B|reactor-http-epoll-2|2019-05-03 07:47:10.918 NZST|HandshakeContext.java:294|Ignore unsupported cipher suite: …Run Code Online (Sandbox Code Playgroud) 我正在尝试为我的 K8s/Istio 集群配置 HTTPS。我从头开始多次逐步遵循此官方教程,每次尝试创建证书资源时都会遇到相同的错误。
no matches for kind "Certificate" in version "certmanager.k8s.io/v1alpha1"
Run Code Online (Sandbox Code Playgroud)
我尝试根据官方文档手动安装 cert-manager 及其 CRD ,但没有帮助。
cert-manager-5ff755b6d5-9ncgr 1/1 Running 0 6m55s
cert-manager-cainjector-576978ffc8-4db4l 1/1 Running 0 6m55s
cert-manager-webhook-c67fbc858-wvtgs 1/1 Running 0 6m55s
Run Code Online (Sandbox Code Playgroud)
无法找到有关此错误的任何信息,因为它在开箱即用安装后或安装 cert-manager 的 CRD 后对每个人都有效。
lets-encrypt ×10
ssl ×6
certbot ×4
cert-manager ×2
apache ×1
apache2 ×1
cron ×1
django ×1
istio ×1
java ×1
kubernetes ×1
lighttpd ×1
nginx ×1
php ×1
raspberry-pi ×1
spring-boot ×1
starttls ×1
traefik ×1