結論からいうと WebMockでHTTP通信をスタブしつつとSSLのOpenID認証を使う場合には次のようにWebMockを設定する必要がある: WebMock.allow_net_connect!(net_http_connect_on_start: true) どういうことかというと ruby-openidはidentifierがSSL(https://から始まる)の場合に、事前に通信できるかどうかをチェックしてる。実装としてはこのあたり。 そしてそれはNet::HTTP#startでNet::HTTP#connectが呼ばれていることを前提としている。もし呼ばれていない場合には@socketがセットされていないので、次のようなエラーが出る: OpenID::DiscoveryFailure: Failed to fetch identity URL https://xxxxxx/ :