MacPCでPalo AltoのGlobal Protect用証明書をLet's Encryptで作成するメモ
いつも忘れて調査に時間がかかるのでメモ。 ※情報が正しくない恐れありです。いつか清書します。
参考にさせていただいたサイト
事前準備1
Global Protect用のドメインを取得 & TXTレコードが書き換えられる環境を用意しておく。
事前手順2
下記を事前にインストールしておく。
証明書の用意
下記コマンドを実行。変数の箇所は各自の環境に合わせて書き換えてください。
DOMAIN=hogehoge.com #Global Protect用のドメイン MAIL=admin@hogehoge.com #証明書失効について通知したりするメールアドレス certbot certonly --manual \ -d ${DOMAIN} -m ${MAIL} --agree-tos --manual-public-ip-logging-ok \ --preferred-challenges dns-01 \ --server https://acme-v02.api.letsencrypt.org/directory
下記のような感じで登録するテキストレコードが表示するので、それを登録し、ちょっと時間を置いてからEnterする。
Please deploy a DNS TXT record under the name _acme-challenge.hogehoge.com with the following value: xxxxxxxxxxxxxxxxxxxxxxx Before continuing, verify the record is deployed.
証明書作成に成功したらpfx形式の証明書を生成する。
TEMP_PWD=$(openssl rand -hex 15) sudo openssl pkcs12 -export -out letsencrypt_pkcs12.pfx -inkey /etc/letsencrypt/live/${DOMAIN}/privkey.pem -in /etc/letsencrypt/live/${DOMAIN}/cert.pem -certfile /etc/letsencrypt/live/${DOMAIN}/chain.pem -passout pass:$TEMP_PWD
Palo AltoのAPIキーを得る
Palo AltoのAPIキーを得る。下記変数の箇所は各環境に合わせてください。
#変数 PAN_MGMT=192.168.xx.xx #Palo AltoのIP USERNAME=admin PASSWORD=hogehoge #APIキー発行 panxapi.py -h ${PAN_MGMT} -l ${USERNAME}:${PASSWORD} -k
成功するとこんな感じで表示
keygen: success API key: "xxxxx"
証明書をアップロード
下記のような感じでアップロードする。
# 変数 CERT_NAME=LetsEncryptWildcard #任意の証明書名 API_KEY="xxxxx" #上記で生成されたAPIキー # アップロード curl -k --form file=@letsencrypt_pkcs12.pfx "https://$PAN_MGMT/api/?type=import&category=certificate&certificate-name=$CERT_NAME&format=pkcs12&passphrase=$TEMP_PWD&key=$API_KEY" && echo " " curl -k --form file=@letsencrypt_pkcs12.pfx "https://$PAN_MGMT/api/?type=import&category=private-key&certificate-name=$CERT_NAME&format=pkcs12&passphrase=$TEMP_PWD&key=$API_KEY" && echo " "
成功すると下記のような結果が表示される。
<response status="success"><result>Successfully imported LetsEncryptWildcard into candidate configuration</result></response>
あとはPalo AltoのGUIコンソールで「デバイス」-「証明書の管理」-「証明書」でアップロードした証明書が現れているので、Global Protectポータル等でアップロードした証明書を使えばOK。