vSphere 5.1のAPIにhttpでもアクセスできるようにする方法

vSphere APIは、「https://hostname/sdk」というhttpsでのアクセスが許可されています。
しかし、開発段階などhttpsである必要がない場合などもあります。
そこで、httpでもAPIアクセスができるよう設定してみます。
vSphere5.1よりも過去のバージョンでのやり方は公式のDeveloper's Setup Guideにも方法が書かれていますが、
ESXiサーバの/etc/vmware/hostd/proxy.xmlの中身を書き換えて、
service mgmt-vmware restart
と再起動すればよかったらしいです。
しかし、同様の手順でESXi 5.1でもできるのかと思ったら、ファイルが存在しませんでした。
5.1からファイルの構成が変更になっているようで、次のようにすることで対応が可能となりました。

参考URL:Proxy.xml which we use to modify to enable HTTP... |VMware Communities

次の2つのファイルがWebアクセスに関する設定になっています。

config.xmlの中身はこのような感じです。

5.0.0.0

/var/log/vmware/

/etc/vmware/

/var/log/vmware/

rhttpproxy

false

false

524288

8

verbose

true

Rhttpproxy

local4

/var/run/vmware/rhttpproxyLogHeader.txt

/etc/vmware/rhttpproxy/endpoints.conf

80

443

/etc/vmware/ssl/rui.key

/etc/vmware/ssl/rui.crt
/lib/

2 44 2 18

8 600 256 rhttpproxy
false false true /lib/ 120000

false

false

62914560

524288

1000

128

vSphere Web Serviceの稼働ポートを変更したい場合には、80443を変更すればいいようです。

endpoints.confの中身はこのような感じです。

/                        local            8309                   		   redirect       allow
/sdk                     local            8307                             redirect       allow
/client/clients.xml      local            8309                             allow          allow
/ui                      local            8308                             redirect       allow
/vpxa                    local            8089                             reject         allow
/mob                     namedpipe        /var/run/vmware/proxy-mob        redirect       allow
/wsman                   local            8889                             redirect       allow
/sdkTunnel               namedpipetunnel  /var/run/vmware/proxy-sdk-tunnel allow          reject
/ha-nfc                  local            12001                            allow          allow
/nfc                     local            12000                            allow          allow

各行の左端列がURLを示しており、左から4番目の列が処理をどうするかについて記載されているようです。
/sdkの行を見ていくと、4番目の列がredirectになっており、httpアクセス時にhttpsにリダイレクトされる設定になっています。
ここをallowにすることでhttpでのアクセスもhttpsにリダイレクトされることなく実施可能になりました。

設定を変更後、rhttpproxyを再起動します。

# /etc/init.d/rhttpproxy restart

テスト環境や開発環境など、httpsにする必要がない場面などはhttpでアクセスできるようにしておくといいかもしれません。