without opts, protocol always will be https