Please read this section carefully: https://datatracker.ietf.org/doc/html/rfc2986#section-3
The CSR contains the digital signature of the public key that is requesting the certificate. So you absolutely need the private key to create a CSR. How would you create a CSR with just a public key?