You will need to renew your old SSL certificate (or grab a free trial SSL, such as this one from Comodo).
Although I can't find a reference right now, Google is not going to look kindly on a 301 beneath an expired certificate, if it even gets to that point at all. As far as Google's concerned, your site could be compromised and the 301 can't be trusted.
Aside from the SSL issue, a 301 redirect is exactly the way to go in this case.
EDIT - Adding further information from discussion in the comments:
Further, although not entirely neccessary because the 301 redirects will pick it up, you can use the Change of address tool in the Google Search Console (Webmaster Tools). It's worth noting that 301 redirects are still required in order for this to work.
Google also has a decent overview of the URL changing process in their help centre. It goes into detail on four steps:
- Prepare the new site and test it thoroughly.
- Prepare a URL mapping from the current URLs to their corresponding new format.
- Start the site move by configuring the server to redirect from the old URLs to the new ones.
- Monitor the traffic on both the old and new URLs.
Another useful tool to test that everything's working from Google's perspective is the Fetch as Google tool (more info on that here).