Is this STM32F based CAN bus circuit ok?
First, you'll need to put in a voltage regulator, driven from the USB's 5V pin or else have an external 3.3V regulator. You could use a low-dropout linear regulator, but in my design I used a TPS563200. You have to do this, as the maximum voltage is set at 4.0V.

STM32s BOOT0 pin is not a regular logic pin. You want to connect BOOT0 through a 10K resistor before connecting the other end to GND or VDD.

You should double-check with the datasheets, but I believe you need to connect PA9 (OTG_FS_VBUS) to the USB's 5V pin, and to support/sense USB OTG you'll also need to connect PA10 (OTG_FS_ID). It also looks like you've connected the USB shield directly to ground. There are many recommendations out there, but the one I use is to connect GND to SHIELD with a 1Mohm resistor in parallel with a 0.1uF capacitor.

Typically, the reset switch should be in parallel with a capacitor. However, I like to use a dedicated chip for this, for instance the APX823. 

Finally, take a good look at the reference design (http://www.st.com/web/en/resource/technical/document/application_note/CD00164185.pdf).