[英]Tomcat : Installing LetsEncrypt certificate for https, not working
[英]How do I setup https with a LetsEncrypt certificate?
我正在尝试使用letsencrypt证书在curity服务器上设置https。 我想将其自动化,以便在证书过期时,curity 可以读取和使用该新证书(可能无需重新加载。)
目前我无法将证书导入curity。 我创建了/etc/init/crypto/signer-truststores
和/etc/init/crypto/ssl-server-truststore
目录,并将我的cert.pem
复制到 signer signer-truststores
和fullchain.pem
到ssl-server-truststore
名称作为mydomain.com.pem
。 正如https://curity.io/docs/idsvr/latest/system-admin-guide/crypto/index.html?highlight=https中的状态,将证书添加到这些位置,curity 将自动导入它们。
此外在上面的链接上说
“重要提示:服务器需要以适当的启动 arguments 启动,以考虑重新加载配置文件,有关更多信息,请参阅服务器配置概述。”
我单击“服务器配置”的链接,但在任何地方都看不到要添加什么来获得导入这些证书的安全性。
有人可以告诉我我需要在哪里放置我的证书(以便我可以在密钥到期时自动创建一个 bash 脚本来为我执行此操作),以便 curity 导入它们?
编辑:我尝试使用 privkey.pem 和 cert.pem 创建证书。 该站点现在是安全的,但我仍然不知道如何通过 localfiles 导入 https 证书。
您不应重新启动服务器以重新加载新证书。
如果刷新证书的脚本在同一台机器上运行,您可以使用配置 CLI ( idsh
),否则使用 RESTConf API 动态配置证书。 可以执行此操作的示例脚本如下所示:
#!/bin/bash
set -e
DOMAIN=login.example.com
SERVICE_ROLE=default
PATH=$PATH:$IDSVR_HOME/bin
certbot certonly \
--agree-tos \
-d $DOMAIN \
-n \
--standalone
XMLFILE=$(mktemp -u /tmp/conf-XXXXXX)
trap "rm -f $XMLFILE" EXIT
KEY=$(cat /etc/letsencrypt/live/$DOMAIN/privkey.pem)
CERT=$(cat /etc/letsencrypt/live/$DOMAIN/cert.pem)
cat <<EOF > $XMLFILE
<config xmlns="http://tail-f.com/ns/config/1.0">
<facilities xmlns="https://curity.se/ns/conf/base">
<crypto>
<ssl>
<server-keystore>
<id>letsencrypt-ssl-key</id>
<keystore>
$KEY
$CERT
</keystore>
</server-keystore>
</ssl>
</crypto>
</facilities>
</config>
EOF
idsh <<< "configure
load merge $XMLFILE
set environments environment services service-role $SERVICE_ROLE ssl-server-keystore letsencrypt-ssl-key
commit"
关于导入的位置,我建议使用 UI 并从 a.p12 或 a.pem 导入新的 SSL 服务器密钥库。
通常有两种类型的证书 - 一种在信任库中,另一种是您拥有存储在密钥库中的密钥。 在第一次启动期间,您可以使用其他受信任的(根)证书(信任库)初始化系统。 但是,不支持以这种方式加载密钥库(“私有证书”)。 要导入证书和相关密钥,您需要使用 UI、CLI 或 RESTConf API。
证书和密钥的配置中有一个额外的部分,例如 SSL 服务器证书(和密钥)放置在facilities crypto ssl server-keystore
下。 本节中的每个条目都有一个 id。 在配置 HTTPS 时,您只需参考密钥库条目的 id,其中包含应使用的服务器证书。 因此,请替换facilities crypto ssl server-keystore
部分中的现有证书。 只要 id 保持不变,就不需要进一步更新。 特别是,您不需要更改admin-service http ssl-server-keystore
中的任何内容。 Curity Identity Server 将自动从加密部分获取新证书。
要使用 CLI 导入新证书,您可以创建一个(临时)config-xml,其中包含更新的密钥库并通过 CLI 合并它,或者使用请求命令: idsh <<< "request facilities crypto add-ssl-server-keystore id $certificateName keystore $base64EncodedKeystore password $passwordForKeystore"
。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.