The Conservative leader is expected to release draft legislation next week, The Guardian said.
At a speech in Redditch, a Conservative parliamentary constituency, Cameron promised to protect religious groups that oppose gay marriage.
"Let me be absolutely 100 percent clear, if there is any church or any synagogue or any mosque that doesn't want to have a gay marriage it will not, absolutely must not, be forced to hold it," Cameron said.
Cameron has also said the parliamentary vote will be a "free" one, with Conservatives able to make their own choice. Opponents of gay marriage say at least 120 Conservative MPs plan to do just that.
David Burrowes, a Conservative MP and parliamentary private secretary to the Environment Secretary Owen Paterson, told The Guardian he expects Cameron to face a backlash in his government as well as among backbenchers. Burrowes predicted several members of the Cabinet will either abstain or vote against gay marriage.
Both the Church of England and the Roman Catholic Church have opposed Cameron's plan. Cameron says support for same-sex marriage is a conservative value.