このような案内をサイボウズ社から頂きました。
さて、本稿はこのような案内をサイボウズ社からいただいたけれど、どうすればよいかお困りの方へ向けて書いています。
実は弊社にも数カ月前、同様の内容が書かれたメールがサイボウズ社から届いていました。
その時は私はまだ先のことと思い、後回しにしました。
ところが今回、このような内容の案内を郵送で受け取るに至り、さすがにまずいと思って調べてみました。
この案内の中で対処法として書かれている通り、ウェブブラウザーやOSが古い場合は簡単です。
サイボウズのサービスを、新しいパソコンでしか使わないようにすればよいのです。
ところが問題は、ウェブブラウザーやOSが最新版なのにこのような案内が来る場合です。
それはリンクに記載されているチェックツールで問題なしと出る場合です。
問題なしと表示されるのに、なぜこのような案内が来るのか不安になりませんか。
もしかしたら、どうすればよいのか分からない方がいらっしゃるのではないでしょうか。
本稿はそういう方のために書かせていただきます。
実は私は最初にメールを受け取った時点でほぼ見当はついていました。
それはウェブブラウザー以外の場所から、サイボウズのクラウドサービスに接続している場合です。
ウェブブラウザー以外の場所とは、たとえばExcel、Word、Access、PowerPointなどのソフトウエアのことです。
弊社の場合、Excelからkintoneへデータを参照しているプログラムが問題でした。
Set objweb = CreateObject("MSXML2.ServerXMLHTTP.6.0")
If Err.Number = 0 Then
Set CreateHttpObject = objweb
Exit Function
Else
MsgBox "MSXML2.ServerXMLHTTP.6.0エラー"
End If
Err.Clear
Set objweb = CreateObject("MSXML2.ServerXMLHTTP")
If Err.Number = 0 Then
Set CreateHttpObject = objweb
Exit Function
Else
MsgBox "MSXML2.ServerXMLHTTPエラー"
End If
上のプログラムは、Excelのマクロからkintoneに接続するライブラリの設定箇所を抜粋しています。
上で設定したライブラリを、以下のコードでkintoneに接続していました。
Set objweb = CreateHttpObject()
If objweb Is Nothing Then
GetData = ""
Exit Function
End If
Call objweb.Open("GET", "kintoneのURL", , "basic認証ID", "basic認証PW")
ここで最初に挙げた、
Set objweb = CreateObject("MSXML2.ServerXMLHTTP.6.0")
または
Set objweb = CreateObject("MSXML2.ServerXMLHTTP")
が問題です。
要するにこの二つのライブラリが古いのです。古いライブラリですがWindows 10でもサポートされているため、
エラーは特に起きません。
ところがこのライブラリは、kintoneへの接続の際にTLS 1.0という通信プロトコルを使うのです。
これがサイボウズ社のクラウド基盤側で検知されたため、メールや郵送でご案内を出されたのでしょう。
いつもながら、早め早めを見越したサイボウズ社の対応には感謝です。
弊社の場合、上記の処理を2社様にのみ使っていました。
とくに最初のお客様への導入が2012年の春でした。
それはkintoneがリリースされる前、つまりプレリリースの段階でした。
その時点でMSXML2.ServerXMLHTTP.6.0を採用したことが誤りでした。
それを受けて、
Set objweb = CreateObject("WinHTTP.WinHTTPRequest.5.1")
If Err.Number = 0 Then
Set CreateHttpObject = objweb
Exit Function
Else
MsgBox "WinHTTP.WinHTTPRequest.5.1エラー"
End If
と改修しました。WinHTTP.WinHTTPRequest.5.1であればTLS1.0は使いません。
3月の初めに改修を行いましたが、今のところエラーもなく動いています。
(サイボウズ社側でまだTLS1.0として検知されていたら問題ですが)
なお、
Set objweb = CreateObject("MSXML2.ServerXMLHTTP.6.0")
を使っている場合は、
Call objweb.Open("GET", "kintoneのURL", , "basic認証ID", "basic認証PW")
でエラーなく通ります。
ですが、
Set objweb = CreateObject("WinHTTP.WinHTTPRequest.5.1")
に変えた場合、
Call objweb.Open("GET", "kintoneのURL", , "basic認証ID", "basic認証PW")
ではエラーが発生します。
objweb.Open "GET", "kintoneのURL", False
と変えるとよいでしょう。
ちなみにベーシック認証の指定は、
Call objweb.setrequestheader("Authorization", "Basic " & encode64("basic認証ID:basic認証PW"))
とopenの後のコードで行っているので、その変更はありません。
というわけで、同様の案内をサイボウズ社からいただいていて、ウェブブラウザーやOSのチェックでは問題ないと表示される方、
は本稿を参考にしてもらえれば幸いです。
もし必要であれば弊社宛にご連絡を頂戴できれば、ご相談にものらせていただきますよ。