я бы для начала попробовал на каком-нибудь не самоподписном сертификате. Я думаю дело IO::Socket::SSL работает корректно, просто что-то не так с сертификатом.
В случае INSERT IGNORE нужно будет строить индекс по все таблице или иметь какое-то уникальное поле однозначно определяющее запись. Т.е. его имеет смысл использовать с первым предложенным решением.
Сейчас это делает так: SELECT 1 FROM table WHERE… И если ничего нет, то INSERT, а если есть то ничего не делаем. Просто в данных которые обрабатываются и заливаются очень много дублирующихся записей.