Wrapping it with Define fixed the error, and HTTPS is working fine. But I don't want to forward HTTP to HTTPS, so I removed:
#RewriteEngine on
#RewriteCond %{SERVER_NAME} =mydomain.com
#RewriteRule ^ https://%{SERVER_NAME}%{REQUEST_URI} [END,NE,R=permanent]
And due to the wrapping with Define, HTTP defaults to ubuntu's initial default page. So after, removing the wrap, back to the original 000-default.conf, the apache won't start.
Nov 08 17:29:22 ip-172-31-35-63 systemd[1]: Starting The Apache HTTP Server...
Nov 08 17:29:22 ip-172-31-35-63 apachectl[16221]: AH00526: Syntax error on line 33 of /etc/apache2/sites-enabled/000-default.conf:
Nov 08 17:29:22 ip-172-31-35-63 apachectl[16221]: Name duplicates previous WSGI daemon definition.
Nov 08 17:29:22 ip-172-31-35-63 apachectl[16218]: Action 'start' failed.
Nov 08 17:29:22 ip-172-31-35-63 apachectl[16218]: The Apache error log may have more information.
Nov 08 17:29:22 ip-172-31-35-63 systemd[1]: apache2.service: Control process exited, code=exited, status=1/FAILURE
Nov 08 17:29:22 ip-172-31-35-63 systemd[1]: apache2.service: Failed with result 'exit-code'.
Nov 08 17:29:22 ip-172-31-35-63 systemd[1]: Failed to start The Apache HTTP Server.
And the syntax error is on that same line as the original:
`WSGIDaemonProcess ......"
I had to remove that line from 000-default-le-ssl.conf, and now both HTTP and HTTPS comes up.