(turns out your CA has to support signing with SHA256 as well)
openssl req -nodes -sha256 -newkey rsa:2048 -keyout example.com.key -out example.com.csr
Generate a password-protected key first (remember the password you set here for the next step):
openssl genrsa -des3 -out example.com.encrypted.key 2048
Use that key for the CSR (will ask for the password created in the previous step:
openssl req -nodes -sha256 -new -key example.com.encrypted.key -out example.com.csr
Remove the password protection from the key (optional - for use on a server):
openssl rsa -in example.com.encrypted.key -out example.com.key
openssl req -in example.com.csr -text -noout