Edited at

SAP Note を wget でダウンロードする。

More than 1 year has passed since last update.


はじめに

SAP ABAPシステムに対して、SAP Note をオフライン(SAPNETの接続なし)で適用する場合、Tr-cd:SNOTE 向けにテキストベースのNoteをサポートポータルからダウンロードする必要がある。

Noteが1、2個であれば手動ダウンロードでも問題ないが、10個、20個だと手動ダウンロードは時間と手間がかかりつらい。

そこで、wget と SAP Passport(実態はクライアント証明書)を利用して、コマンドベースでNoteを取得する方法を探した。

※2018/01現在、有効な方法であることを確認


作業環境

# cat /etc/redhat-release

CentOS Linux release 7.4.1708 (Core)

# rpm -qa | grep openssl
openssl-1.0.2k-8.el7.x86_64

# rpm -qa | grep wget
wget-1.14-15.el7.x86_64


事前準備


SAP Passport の入手

以下のサイトにアクセスし、SAP Passportを入手する。

(すでに発行済みでPKCS#12形式のクライアント証明書を保持している場合は省略可)

https://launchpad.support.sap.com/#/sappassport

※Sユーザでのログイン必須


SAP Passport を作業環境へアップロード

入手に成功するとPKCS#12形式でクライアント証明書がローカルPCにダウンロードされる。

ダウンロードされたファイル(<SID>.pfx)を作業する環境にアップロードする。

※今回はLinux環境を使用しているが、Windowsでも同様のことは可能。なはず。。。(未検証)


証明書をPKCS#12形式からPEMに変換

man wget によると、wget はクライアント証明書、CA証明書、秘密鍵をそれぞれファイルで指定する必要がある。

形式はデフォルトがPEM、オプション指定でDERにも対応しているようだが、今回はデフォルトのPEMを利用することとする。

# SAP Passport ファイルの確認

$ ls -l
-rw-r--r--. 1 user uesr 3100 Jan 23 13:08 <SID>.pfx

# クライアント証明書
$ openssl pkcs12 -in <SID>.pfx -nokeys -clcerts -out client_cert.crt.pem
Enter Import Password: <SAP Passport入手時に入力したパスワード>
MAC verified OK

# CA証明書
$ openssl pkcs12 -in <SID>.pfx -nokeys -cacerts -out ca_cert.crt.pem
Enter Import Password: <SAP Passport入手時に入力したパスワード>
MAC verified OK

# 秘密鍵
$ openssl pkcs12 -in <SID>.pfx -nocerts -nodes -out client_cert.key.pem
Enter Import Password: <SAP Passport入手時に入力したパスワード>
MAC verified OK


SAP Note(SNOTE向け)のダウンロード

<NoteNo> : ダウンロードするNote番号を指定する。

$ wget --certificate=client_cert.crt.pem --private-key=client_cert.key.pem --ca-certificate=ca_cert.crt.pem -O <NoteNo>.SAR https://apps.support.sap.com/sap/support/lp/notes/hcp/down4snote/down4snote.htm?iv_num=<NoteNo>&sap-language=EN


仕上げに

後はシェル化して

1. NoteNo を外部ファイルから読ませダウンロード

2. SAPCAR で展開

3. unzip で展開

等とすれば、面倒なSAPNETなしのNote適用も少しは楽になるかも。。。

※くれぐれもクライアント証明書の管理には注意を払うこと。